基于Docker Compose搭建MySQL主从复制(1主2从)(2)

mysql -uroot -p123456
创建用于主从复制的用户,并授权所有。(网上教程说,只需要同步的权限就可以,但是我操作的时候会发现一大堆同步日志错误,各种没权限等,有没有大侠指明原因出在哪里)

SET SQL_LOG_BIN =0;
CREATE USER 'rpl_user'@'%' IDENTIFIED BY '123456';
grant all privileges on *.* to 'rpl_user'@'%';
#GRANT REPLICATION SLAVE ON *.* TO 'rpl_user'@'%' ;
SET SQL_LOG_BIN =1;
CHANGE MASTER TO MASTER_USER ='rpl_user', MASTER_PASSWORD ='123456' FOR CHANNEL 'group_replication_recovery';
FLUSH PRIVILEGES;
 
INSTALL PLUGIN group_replication SONAME 'group_replication.so';    #安装Group Replication plugin
SHOW PLUGINS;
 
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;
锁库,不让数据再进行写入动作,这个命令在结束终端会话的时候会自动解锁

FLUSH TABLES WITH READ LOCK;
重置下master状态,这点有争议,其他教程是先查询master状态,show master status; 然后在通过制定日志位置去同步。

reset master;
(2)配置slave

同样进入mysql控制台,然后

#从节点
reset master;
SET SQL_LOG_BIN =0;
CREATE USER 'rpl_user'@'%' IDENTIFIED BY '123456';
grant all privileges on *.* to 'rpl_user'@'%';
#GRANT REPLICATION SLAVE ON *.* TO 'rpl_user'@'%' ;
SET SQL_LOG_BIN =1;
CHANGE MASTER TO MASTER_USER ='rpl_user', MASTER_PASSWORD ='123456' FOR CHANNEL 'group_replication_recovery';
FLUSH PRIVILEGES;
 
INSTALL PLUGIN group_replication SONAME 'group_replication.so';    #安装Group Replication plugin
#SHOW PLUGINS;
 
CHANGE MASTER TO
MASTER_HOST='192.168.100.100',
MASTER_USER='rpl_user',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=0;
 
START GROUP_REPLICATION;
start slave;

于是乎,差不多整个过程就是这样了。可能会遇到一些异常,只能一个一个踩坑解决了,主要是开头注意事项的那些吧。比如server_id一样、同步用户的权限不足、slave上同步的日志异常。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ffa02274a89d397154afab43c744a591.html