设为首页 加入收藏

TOP

基于Docker Compose搭建MySQL主从复制(1主2从)(二)
2018-10-28 16:08:26 】 浏览:430
Tags:基于 Docker Compose 搭建 MySQL 主从 复制
er exec -it mysql /bin/bash  #mysql表示我刚才docker-compose里面设置的容器名称
登录mysql 控制台,帐号root 密码123456


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上同步的日志异常。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL大事务导致的Insert慢的案例.. 下一篇PostgreSQL中的大容量空间探索时..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目