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,从而得到具体的报错内容,然后解决。
进而针对问题解决问题。