1.在docker上启动2台mysql容器:(这里3306为主,3307为从)
docker run -d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 --name 镜像id
2.配置主的mysql:
1)进入主容器:
docker exec -it 主容器ID /bin/bash
cd etc/mysql/
2)安装vim命令
apt-get update
apt-get install vim
3)编辑my.cnf,在结尾添加:3行(vim my.cnf,按insert,添加完毕,shitf+:+wq保存)
[mysqld]
server-id=100
log-bin=mysql-bin
4)重启容器:
service mysql restart
ctrl+d 退出
docker start 主容器id
5)进入容器,创建从用户,登录主mysql的账号:
docker exec -it 主容器ID /bin/bash
mysql -u root -p
输入密码
然后填写下面两句:
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
3.配置从mysql
进入从mysql容器,同上修改从容器的my.cnf
进入主mysql,输入show master status;
在docker中查看mysql的Master的地址:docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器id
进入从mysql,配置主从的连接:
1.stop slave;
2.change master to master_host='172.17.0.3', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 2519, master_connect_retry=30;
3.start slave;
在从mysql查看状态为下图,则配置成功:
4.测试:在主mysql建立数据库,修改字段等,从mysql会有相同反应则成功了。
总结:主从复制主要通过二进制文件来实现
主mysql配置:1.my.cnf 2.创建从用户登录的账号和密码
从mysql配置:1.my.cnf 2.建立主从之间的连接的slave
参考:(https://www.cnblogs.com/songwenjie/p/9371422.html,http://blog.chinaunix.net/uid-24426415-id-77316.html)