准备 centos8 mysql 8
master1:10.0.0.10
master2:10.0.0.12
master1 mysql配置
# vim /etc/my.cnf
log-bin=mysql-bin #日志名称
log=/home/mysqld.log
server-id=200
binlog-do-db=test #同步的数据库
auto-increment-increment=2
auto-increment-offset=2
master2 mysql配置
# vim /etc/my.cnf
log-bin=mysql-bin #日志名称
log=/home/mysqld.log
server-id=201
binlog-do-db=test #同步的数据库
auto-increment-increment=2
auto-increment-offset=2
配置好了,要重启数据库(两个)
systemctl restart mysqld;
master1,master2授权用户(都执行一遍)
create user 'jacob'@'%' identified by 'Qwe!1234';
再赋予权限
grant replication slave on *.* to 'jacob'@'%' with grant option;
#在之后show slave status\G;时可能报错:Authentication plugin #‘caching_sha2_password‘ reported error: Authentication,所以加上下面的操作
alter user 'jacob'@'%' identified with mysql_native_password by 'Qwe!1234';
flush privileges;
查看master1状态:
show master status;
查看master2状态
show master status;
master1执行
change master to master_host= '10.0.0.12', master_user='jacob', master_password='Qwest!1234', master_log_file='mysqlbin.000003', master_log_pos=751;
在master2
change master to master_host= '10.0.0.10', master_user='jacob', master_password='Qwest!1234', master_log_file='mysqlbin.000005', master_log_pos=449;
两台服务器都开启同步操作:
start slave; #开启同步
show slave status; #查看状态
基本上这样就是好了
Fatal error:The slave I/O thread stops because master and slave have equal MySQL server UUIDs;
解决方法就是找到主机和从机的auto.cnf文件修改uuid值或删除auto.cnf这个文件。
执行find / -name auto.cnf命令查看auto.cnf文件的位置,在./mysql/data/auto.cnf位置。
然后随便修改一个文件里的值,然后执行service mysqld restart命令重启主机和从机的mysql服务
如果其中一台服务器重启可能会报1062错误
在重启的服务器上执行下面的操作可解决
mysql> stop slave;
mysql> set global sql_slave_skip_counter=1;mysql> start slave;