拉取mysql镜像

#docker pull daocloud.io/library/mysql:5.7.7

在vmware中使用docker搭建mysql主从复制 --步步为营
查看镜像
在vmware中使用docker搭建mysql主从复制 --步步为营

启动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
在vmware中使用docker搭建mysql主从复制 --步步为营
在vmware中使用docker搭建mysql主从复制 --步步为营
在vmware中使用docker搭建mysql主从复制 --步步为营
在master和slave容器里分别安装vim
apt-get update && apt-get install vim -y


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

在vmware中使用docker搭建mysql主从复制 --步步为营

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

在vmware中使用docker搭建mysql主从复制 --步步为营


容器重启
docker restart mastermysql

docker restart slavemysql


连接master数据库,创建同步用户名并查看服务器二进制文件名与位置
create user 'dbsync'@'%' IDENTIFIED BY '123456';
GRANT select, REPLICATION SLAVE ON *.* TO 'dbsync'@'%'
在vmware中使用docker搭建mysql主从复制 --步步为营

在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模式
在vmware中使用docker搭建mysql主从复制 --步步为营

在slave数据库查看主从复制是否配置成功,连接错误 Slave_IO_Running: Connecting
在vmware中使用docker搭建mysql主从复制 --步步为营

查看slave容器日志,无法连接master数据库 [ERROR] Slave I/O for channel '': error connecting to master
在vmware中使用docker搭建mysql主从复制 --步步为营
在slave容器里用ip地址连不上mysql
在vmware中使用docker搭建mysql主从复制 --步步为营

使用mysql客户端可以连接数据库
在vmware中使用docker搭建mysql主从复制 --步步为营

在docker宿主机关闭防火墙 service firewalld stop,在slave中重新配置二进制文件名和位置,Start slave,查看日志,连接成功,问题解决
在vmware中使用docker搭建mysql主从复制 --步步为营
在vmware中使用docker搭建mysql主从复制 --步步为营

在master容器创建database
在vmware中使用docker搭建mysql主从复制 --步步为营

slave容器同步成功

在vmware中使用docker搭建mysql主从复制 --步步为营

相关文章: