CentOs 7 MySql8.0.23之前的版本主从复制
准备俩台虚拟机并启动
俩台虚拟机都开启mysql后
查看二进制日志是否开启
先登录mysql
mysql -u root -r
输入sql命令
show variables like '%log_bin%';
如果log_bin 的value为OFF则是没有开启,跟着下面步骤开启二进制日志
退出mysql
exit
vim /etc/my.cnf
在最底下添加
log_bin=mysql_bin
server-id=1
效果如图
重启mysql
systemctl restart mysqld
登录
mysql -u root -p
查看是否开启
show variables like '%log_bin%';
随后配置第二台虚拟机也就是从库
和以上一样的配置,不同的是需要添加的server-id=2
来到主库的虚拟机进入mysql输入
show master status;
记住这查到的mysql_bin.000001和后面的154然后切换到从库的虚拟机输入sql命令
change master to master_host='xxx.xxx.xxx.xxx',master_user='xxx',master_password='xxx',master_log_file='xxx',master_log_pos=xxx;
你需要替换此命令中的xxx
修改完后输入启动
start slave;
查看同步状态
show slave status\G
如何判断错误
第一步正确的做法第二步
第三步
如果这里显示uuid错误
进入到
cd /var/lib/mysql
vi auto.cnf
更改uuid(任意)
随后进入到mysql重新配置同上需要自行配置
change master to master_host='192.168.25.100',master_user='root',master_password='1234',master_log_file='mysql_bin.000001',master_log_pos=154;
测试
在主库中指向任意sql命令,从库中会跟着执行同样的sql命令
如在主库中输入sql命令
CREATE DATABASE db1;
然后去从库输入sql命令查看
show databases;