MySQL5.7 主从同步配置

一、实验环境

  • 实验环境:VMware Workstation 15.5、X Shell6、Centos7.6(2台,一台作为主,一台作为从)
  • 软件版本:MySQL5.7

二、实验步骤

首先进行MySQL数据库的编译安装,安装完成后开始下面步骤

关闭防火墙及核心防护

systemctl stop firewalld
setenforce 0

1、编辑并修改主服务器配置文件

vim /etc/my.cnf      ## 编辑配置文件

在 [mysqld]下如下内容:
log-bin=master-bin
log-slave-updates=true

2、重启mysql服务

systemctl restart mysqld

3、授权从服务器进行同步数据

grant replication slave on *.* to 'myslave'@'192.168.50.%' identified by '123456';

flush privileges;      ## 刷新权限立即生效

4、查看主服务器状态

show master status;

mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 |      603 |              |                  |                   |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

PS:master-bin.000001是同步的二进制日志文件,在从服务同步时会用到该参数
    603是同步点,在从服务同步时会用到该参数
    从现在开始就不要对数据库进行insert等修改操作,否则同步点Position会发生改变导致主从同步失败

5、现在开始配置从服务器,首先修改配置文件

vim /etc/my.cnf      ## 编辑配置文件

在 [mysqld]下如下内容:
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index

特别注意:从服务器的server-id不能与主服务器的相同!!!

6、重启mysql服务

systemctl restart mysqld

7、找主服务器进行同步

change master to master_host='192.168.50.133', master_user='myslave', master_password='123456', master_log_file='master-bin.000001', master_log_pos=603;

8、开启从服务器功能

start slave;

9、查看从服务器状态

show slave status\G;

doxVGd.jpg
必须要看到Slave_IO_Running与Slave_SQL_Running状态均为yes才说明主从同步配置成功

三、注意事项与故障处理

【注意事项】:

1、在启动服务前一定要关闭防火墙,否则同步会失败

2、在主服务器上获取到同步位置点后不要进行任何修改操作,否则一旦位置点发生改变同步也会失败

【故障处理】:

1、Slave_IO_Running: NO

这种情况一般是Master_Log_File(二进制日志)或Read_Master_Log_Pos(同步位置点)不一致产生,遇到该情况排除防火墙原因后,可以先使用stop slave命令停止从服务器,再从主服务器上重新获取二进制日志文件名及同步位置点重新进行同步即可

2、Slave_SQL_Running:NO

遇到该情况可以尝试先停止从服务器,使用命令跳过故障点,在开启从服务器功能即可,若不行可以多尝试几次,如果多次都不成功则可以参照故障1的方法重新进行同步即可

mysql> stop slave;                                                  
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;            
mysql> start slave;                                                      
mysql> show slave status\G 

3、mysql主从同步故障可能性一览表

1.网络不通
2.账户密码错误
3.防火墙【概率较大】
4.mysql配置文件问题
5.连接服务器时语法错误

猜你喜欢

转载自blog.csdn.net/u014042047/article/details/108287934