docker 配置mysql主从复制
一、下载mysql
1、拉取镜像
docker pull mysql
2、根据镜像运行主从数据库容器
主(master-mysql):
docker run -p 3339:3306 \
--restart=always \
--privileged=true \
--name master-mysql \
-e MYSQL_ROOT_PASSWORD="123456" -d mysql
从(slave-mysql):
docker run -p 3340:3306 \
--restart=always \
--privileged=true \
--name slave-mysql \
-e MYSQL_ROOT_PASSWORD="123456" -d mysql
二、配置主容器
- 进入主容器
docker exec -it master-mysql bash - 下载vim命令
apt-get update
apt-get install vim - 修改配置文件
cd etc/mysql
vim my.cnf
- 退出并重启容器
exit
docker restart master-mysql - 进入容器,创建从用户,并给该用户设置权限
docker exec -it master-mysql bash
mysql -uroot -p
输入密码123456
创建用户:CREATE USER ‘slave’@’%’ IDENTIFIED BY ‘123456’;
修改用户权限:grant all privileges on*.*
to ‘slave’@’%’;
三、配置从容器
- 进入从容器
docker exec -it slave-mysql bash - 下载vim命令
apt-get update
apt-get install vim - 修改配置文件
cd etc/mysql
vim my.cnf
- 进入主mysql,输入show master status;
- 查看主容器ip
docker inspect master-mysql | grep IPAddress
- 进入从数据库,配置主从
- stop slave;
- change master to master_host=‘172.18.0.9’, master_user=‘slave’, master_password=‘123456’, master_port=3306, master_log_file=‘mysql-bin.000004’, master_log_pos= 2091, master_connect_retry=30;
- start slave;
- 验证:show slave status \G;
四、测试
进入主容器的数据库,进行新增以及修改操作,从数据库也会进行新增。