mysql主从同步,其实很简单。三个要素,1,server_id 不能相同,2,主服务器二进制日志要开起来,3,从服务器要设置主服务器的的参数。
1.查看主服务器的server_id 和server_uuid
![](https://img.haomeiwen.com/i6475572/320cfa77a7765f9b.png)
注意:如果是通过虚拟机克隆的,那么就需要更改server_uuid,两台服务器的server_uuid是不能相同的,我的是通过yum安装的mysql5.7.2更改server_uuid的地方在 /var/lib/mysql/auto.cnf中。
![](https://img.haomeiwen.com/i6475572/ae281caba9f36658.png)
2.设置主服务器的配置
server_id=1
log-bin=master-bin #不能写目录,例如: /var/lib/masterlog/
binlog_do_db=demo #指定同步的数据
binlog_ignore_db=mysql #指定不同步的数据
![](https://img.haomeiwen.com/i6475572/9eacd94e3106e0a4.png)
3.重启主服务器,并授权用户
grant replication slave on *.* to slave_user@192.168.174.122 identified by '123456';另外,记得刷新权限 flush privileges;
![](https://img.haomeiwen.com/i6475572/156013c544edb852.png)
![](https://img.haomeiwen.com/i6475572/4525598ababd2419.png)
4.查看服务器server_uuid 和 server_id 一定要与主服务器的不同【此处采用文件查看方式,和步骤1作用相同】
![](https://img.haomeiwen.com/i6475572/f7cda1184dc0a962.png)
![](https://img.haomeiwen.com/i6475572/6dbcabe36acb81ec.png)
5.从服务器连接主服务器的配置
![](https://img.haomeiwen.com/i6475572/d877977b03341c31.png)
6.查看从服务器的启动结果 ,成功: Slave_IO_Running 和 Slave_SQL_Running 都是yes
![](https://img.haomeiwen.com/i6475572/73d38d982d1476aa.png)
总结:
在做主从同步的时候总是报错,错误提示如下:
Slave SQL for channel '': , Error_code: 1872 ,#这种错误就是因为我是克隆的虚拟机所以server_uuid都是相同的,导致无法msyql无法识别主机了。
根据错误代码查看错误信息,可以使用linux中的 perror 这个工具,它可以列举出mysql和系统的错误代码信息。
![](https://img.haomeiwen.com/i6475572/d84cbd2fd99e8ac8.png)
如果错误代码是2003 用perror是找不出错误信息的,这个错误往往就是server_id 或者 server_uuid相同导致的。
防火墙: 再啰嗦一点,如果以上还不能成功,请查看是不是从不服务器被主服务器的防火墙给屏蔽掉了。查看方法,直接在从服务器上连接主服务器的mysql。下图表示没有被墙。
![](https://img.haomeiwen.com/i6475572/0a12358004fd1e8f.png)
网友评论