拉取mysql镜像
#docker pull daocloud.io/library/mysql:5.7.7
查看镜像
启动master和slave容器
docker run -it -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mastermysql -d daocloud.io/library/mysql:5.7.7
docker run -it -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name slavemysql -d daocloud.io/library/mysql:5.7.7
在master和slave容器里分别安装vim
apt-get update && apt-get install vim -y
修改master容器的my.cnf配置文件 ,在mysqld下加入

修改slave容器的my.cnf配置文件 ,在mysqld下加入

容器重启
docker restart mastermysql
docker restart slavemysql
连接master数据库,创建同步用户名并查看服务器二进制文件名与位置
create user 'dbsync'@'%' IDENTIFIED BY '123456';
GRANT select, REPLICATION SLAVE ON *.* TO 'dbsync'@'%'
在slave数据库配置二进制文件的文件名和位置
CHANGE MASTER TO MASTER_HOST='192.168.198.129',
MASTER_USER='dbsync',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=4929;
在slave数据库启动slave模式
在slave数据库查看主从复制是否配置成功,连接错误 Slave_IO_Running: Connecting
查看slave容器日志,无法连接master数据库 [ERROR] Slave I/O for channel '': error connecting to master
在slave容器里用ip地址连不上mysql
使用mysql客户端可以连接数据库
在docker宿主机关闭防火墙 service firewalld stop,在slave中重新配置二进制文件名和位置,Start slave,查看日志,连接成功,问题解决
在master容器创建database
slave容器同步成功
