
这里如果是mac本的话,要特别注意在拉取镜像的时候需要如下操作
首先拉取mysql镜像
docker pull mysql/mysql-server:5.7.31创建容器
docker run -p 3351:3306 --name myMysql-3351 -v /Users/xiaobo/DockerImage/mysql/3351/conf/my.cnf:/etc/my.cnf -v /Users/xiaobo/DockerImage/mysql/3351/logs/3351.log:/var/log/mysqld.log -v /Users/xiaobo/DockerImage/mysql/3351/data:/var/lib/data -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server:5.7.31注意⚠️
--platform linux/x86_64chmod 755 my.cnf
修改权限使得navicat可以登录
进入容器
docker exec -it 容器的名字 /bin/bash输入以下命令
- use mysql
- update user set Host='%' where User='root';
- 最后 flush privileges; 按照上面的步骤依次创建3351,3352,3353
相应的my.cnf内容如下图

⚠️:上面所写的-p3351:3306实际上是宿主机对容器的映射
这里在做从库同步的时候,要使用容器的ip,命令如下
docker inspect myMysql-3351

先查看主节点的状态
# 查看主节点状态
SHOW MASTER STATUS;
# 刷新日志
flush logs;
# 展示所有的主库binlog
show master logs;
在从库同步的时候输入以下命令
# 首先要切换到从库下,然后执行上面的,SHOW MASTER STATUS;可看到如上图
CHANGE MASTER TO
MASTER_HOST='172.17.0.3',
MASTER_USER='root',
MASTER_PASSWORD='123456',
MASTER_PORT = 3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=154;
START SLAVE;
show slave status;上面命令执行好后会出现如下图,表示成功(这里并非绝对,对于多主多从的情况下还需要看偏移量)
