docker 配置mysql(主从篇)

  1、创建MySQL

        1.1 本地创建mysql相关文件 data, conf

docker cp docker_mysql:/etc/my.cnf ./conf/

        结构如图:

        

         1.2 创建mysql容器

 docker run -itd --name docker_mysql_3312 --privileged=true -p 3312:3306 -v /usr/local/software/mysql/3312/data:/var/lib/mysql -v /usr/local/software/mysql/3312/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/software/mysql/3312/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=1234 mysql

        创建成功后data文件内容

        创建主从设备中的从设备就是再创n个端口不同的mysql即可,如:

2、配置主从设备

        2.1 修改配置文件

        修改conf文件夹中的my.conf文件(如果权限不足无法更改则使用chmod来修改文件权限)

        主设备:

                从设备:

                 重启docker

        2.2 配置主设备

        进入主设备        

          在主设备中配置从设备权限

         查看master状态

        查看master IPAddress

        2.3 配置从设备

        操作执行顺序:关闭从设备中的从设备服务,重置该服务,然后设置修改该服务内对主服务的设置为主设备的信息,然后启动从设备服务。

 查看从服务状态:

        

 3. 总结

1. 进master(3306)  docker  exec -it mysql_3306 bash
2. 显示master状态:   show master status;    ---记住 mysql-bin , position
3. 退出容器
4. 进入slave(3310)  docker  exec -it mysql_3310 bash
5. mysql -uroot -p123
6. stop slave;
7. reset slave;
8. change master to master_host='172.17.0.2',master_user='slave',master_password='1234',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=606;(master_host为master的IPAddress地址,slave为债之前在master创建的 用户名,密码为对应的密码, MASTER_LOG_FILE为master中的file,MASTER_LOG_POS为master中的position)
9. start slave;
10. show slave status \G:

PS:

        当出现问题时,查看报错信息,针对报错信息解决问题,比如:

跟随报错信息,进入performance_schema数据库,查询表replication_applier_status_by_worker,从而得到具体的报错内容,然后解决。

进而针对问题解决问题。

猜你喜欢

转载自blog.csdn.net/Deikey/article/details/131164040
今日推荐