docker实现mysql主从复制

  1. 下载并运行容器
docker pull mysql:5.7
sudo docker run --name mysql_write_1 -p 33061:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
sudo docker run --name mysql_read_1 -p 33062:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
  1. 修改etc/mysql/my.cnf,因为这一步需要在mysql容器中安装vim还需要很多步骤,且要在多个mysql中安装,所以我采取在本机编写后复制黏贴覆盖掉原本的my.conf文件
[mysqld]
log-bin=slave-bin
server-id=2
# 设置需要复制的数据库(可设置多个)
binlog-do-db=testdb
[mysqld]
log-bin=slave-bin
server-id=2
# 设置需要复制的数据库(可设置多个)
binlog-do-db=testdb
docker cp C:\Users\28673\Desktop\my.cnf mysql_write_1:etc/mysql
docker cp C:\Users\28673\Desktop\my.cnf mysql_read_1:etc/mysql
  1. 进入容器赋予权限
#进入容器
sudo docker exec -it mysql_write_1 bash
#登录mysql
mysql -u root -p123456
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; #修改加密规则 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #修改密码加密策略 
flush privileges; #刷新权限
quit
exit
#进入容器
sudo docker exec -it mysql_read_1 bash
#登录mysql
mysql -u root -p123456
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; #修改加密规则 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #修改密码加密策略 
flush privileges; #刷新权限
quit
exit
  1. 进入主服务器查询状态信息
#进入主服务器查看状态
show master status;
  1. 进入从服务器配置主从关系
    master_log_file和master_log_pos是主服务器查询到的状态信息
#从服务器配置主从关系
change master to master_host='172.24.240.1',master_port=33061,master_user='root',master_password='123456', master_log_file='master-bin.000001',master_log_pos=154;
#保存
start slave;
#查看是否成功
show slave status \G;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值