基于Docker里mysql主从复制同步

容器部署主mysql

docker run -p 3306:3306 --name master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 主数
据库。
修改my.cnf文件
Docker cp /当前文件 容器id:/路径 将宿主机的文件拷贝到容器里路径里
修改my.cnf文件:路径:/etc/mysql/my.cnf
添加内容

开启二进制日志功能

log-bin=mysql-bin

同一局域网内注意要唯一

server-id=100
修改完后 进行容器docker exec -it 容器id /bin/bash
命令重启mysql: service mysql restart
并且重启容器mysql:dokcer restart 容器id
创建用来同步的用户并添加俩个权限
进入容器id ,然后进入mysql执行命令台或使用工具界面连接mysql。
输入命令:
mysql> CREATE USER ‘slave’@’%’ IDENTIFIED BY ‘123456’;
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘slave’@’%’;
创建用来同步的用户,并且给用户添加俩个权限 用来主从库之间的同步。
记录file 与postion 内容
mysql> show master status; 查看 master的状态
File | Position
mysql-bin.000001 | 609
注意这个File下面的数字是会变的 重启后会改变,还有position也是会变的,每次显示是不一样的。

容器部署从mysql

docker run -p 3307:3306 --name slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 从数据库

开启二进制日志功能,以备Slave作为其它Slave的Master时使用log-bin=mysql-slave-bin

同一局域网内注意要唯一

server-id=101

relay_log配置中继日志

relay_log=edu-mysql-relay-bin
同样要重启mysql.
设置从主数据库的连接主的配置
进入从数据库
mysql> change master to master_host=‘master容器的ip’, master_user=‘master容器中创建的用于主从同步的用户’, master_password=‘账户的密码’, master_port=3306, master_log_file=‘master下查看的file’, master_log_pos= Position文件位置, master_connect_retry=30;

然后执行start slave;
Show slave status;查看这两个是否yes
Slave_IO_Running和Slave_SQL_Running都是YES
Stop slave; 没有显示yes,就先停止,再检查原因,可以看一下日志 docker logs 容器 -f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值