Mysql5.7安装手册&主从搭建(适用于Centos7,简单场景)

该文详细介绍了如何在两台CentOS7.6云服务器上安装MySQL数据库,包括下载安装包、设置服务启动、修改root密码,以及为主从复制配置包括创建用户、授权和设置主从实例的详细步骤,涉及日志文件、复制ID、用户权限等关键参数。

一、登录服务器或虚拟机操作
执行下列命令为多台实例进行数据库安装:
此场景为两台云服务器搭建(centos7.6):

curl -O https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
yum localinstall mysql57-community-release-el7-11.noarch.rpm
yum repolist enabled | grep "mysql.*-community.*"
yum install mysql-community-server
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum install mysql-community-server
yum list installed mysql-*
systemctl start mysqld
systemctl status mysqld
systemctl enable mysqld
grep 'temporary password' /var/log/mysqld.log  #这句为查询数据库默认密码使用

记录Mysql默认密码,通过下列命令登录,并修改密码:

mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';	--修改root登录密码

此段命令为root用户授权远程连接/主从复制可用:(谨慎使用)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

–授权mysql root用户可以远程连接

注:以上操作已完成数据库安装
此段命令为创建用户使用,非root账户。可根据具体场景自行添加

create user '数据库用户名' @'%' identified by '密码'; 
grant all privileges on *.* to '数据库用户名' @'%' identified by '密码';  
flush privileges;

二、主从数据库搭建:
1、前提条件:

  • 确认主从实例数据库均已安装完成,状态为正常运行中(active)。
systemctl enable mysqld
  • 确认实例间网络互通。
ping IP地址
  • 登录主从实例,创建好主从实例两端需要同步的数据库
CREATE DATABASE 数据库名 CHARACTER SET utf8;

2、使用root账号登录主实例

编辑 MySQL 配置文件 /etc/my.cnf,在 [mysqld] 段中添加以下配置:

server-id=1 # 设置 MySQL 实例唯一 ID,主从不同
log-bin=mysql-bin # 启用二进制日志,用于记录所有写入操作
binlog-format=ROW # 指定二进制日志格式为 ROW 模式

重启 MySQL 服务以使更改生效:

systemctl restart mysqld
systemctl status mysqld

创建一个用于同步的 MySQL 用户,并授予其复制权限:(如安装时已经授权root账号,则可以直接使用,未创建可通过以下命令新建)

CREATE USER '用户名'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO '用户名'@'%';
flush privileges;

查看主服务器的状态,并记录下来 File 和 Position 字段的值:

SHOW MASTER STATUS;

在这里插入图片描述

3、使用root账号登录从实例
编辑 MySQL 配置文件 /etc/my.cnf,在 [mysqld] 段中添加以下配置:

server-id=2 # 设置 MySQL 实例唯一 ID,主从不同

重启 MySQL 服务以使更改生效:

systemctl restart mysqld
systemctl status mysqld

登录MySQL,使用以下命令进入需要同步的库中:

show databases;		--查看数据库列表
use 数据库名;		--进入数据库

提前整理好以下配置,在需要同步的库中执行:

CHANGE MASTER TO
MASTER_HOST='主实例 IP',
MASTER_USER='主实例数据库用户名',
MASTER_PASSWORD='数据库密码',
MASTER_LOG_FILE='主服务器上的 File 字段值',			#参考上图
MASTER_LOG_POS=主服务器上的 Position 字段值;		#参考上图	

启动复制进程:

START SLAVE;

查询进程状态:

SHOW SLAVE STATUS\G

参考项:

在输出结果中,您可以查看以下信息:
Slave_IO_State:复制进程的当前状态。
Master_Host:主服务器的主机名或 IP 地址。
Master_User:连接主服务器的用户名。
Master_Port:主服务器使用的端口号。
Connect_Retry:如果连接到主服务器失败,则从服务器重试连接的次数。
Master_Log_File:从服务器正在复制的日志文件的名称。
Read_Master_Log_Pos:从服务器正在读取的主服务器日志文件的位置。
Relay_Log_File:中继日志文件的名称。
Relay_Log_Pos:中继日志文件的位置。
Relay_Master_Log_File:从服务器正在复制的主服务器日志文件的名称。
Exec_Master_Log_Pos:从服务器正在执行的主服务器日志文件的位置。
Slave_IO_Running:复制进程是否正在运行。
Slave_SQL_Running:SQL 线程是否正在运行。
Seconds_Behind_Master:从服务器落后主服务器的时间(以秒为单位)。

Slave_IO_State 状态参考:
Waiting for master to send event:表示复制 IO 线程已连接到主服务器,并等待主服务器发送日志事件。
Connecting to master:表示复制 IO 线程正在尝试连接到主服务器。
Reconnecting after a failed master event read:表示复制 IO 线程在读取主服务器上的二进制日志事件时遇到了错误,并正在尝试重新连接到主服务器。
Waiting for the slave SQL thread to free enough relay log space:表示复制 IO 线程已经读取了一些日志事件,但复制 SQL 线程尚未处理完所有事件,因此中继日志文件已满,需要等待 SQL 线程释放空间。
Waiting for event from coordinator:表示在复制通道中使用 Group Replication 时,复制 IO 线程正在等待来自协调器的事件。

备注:(无此需求则忽略)
如需要重新配置其他数据库同步任务,需要先结束进程,安装配置流程重新操作:

STOP SLAVE IO_THREAD FOR CHANNEL '';			--结束同步任务
STOP SLAVE;
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值