目标
- docker mysql容器实现主从配置,实时备份数据;
准备
- 配置好的mysql镜像
- mysql-utf8
- 运行
- 主节点:docker run -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=tax_kbase -p 3306:3306 –name master mysql-utf8
- 从节点:docker run -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=tax_kbase -p 3306:3306 –name slave mysql-utf8
步骤
主节点
- 修改配置
- docker cp master:/etc/mysql/conf.d/my.cnf .
#**docker主从配置
log-bin=master-bin
server-id=101
- docker cp my.cnf master:/etc/mysql/conf.d/my.cnf
- docker cp master:/etc/mysql/conf.d/my.cnf .
- 重启
- docker restart master
进入容器,查看日志文件
- docker exec -it master /bin/bash
- mysql -u root -p
- show master status;
+------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | master-bin.000001 | 154 | | | | +------------------+----------+--------------+------------------+-------------------+
- 修改配置
- 从节点
- 修改配置
- docker cp slave:/etc/mysql/conf.d/my.cnf .
#**docker主从配置
log-bin=slave-bin
server-id=102
- docker cp my.cnf slave:/etc/mysql/conf.d/my.cnf
- docker cp slave:/etc/mysql/conf.d/my.cnf .
- 重启
- docker restart slave
- 进入容器,配置mysql
- docker exec -it slave /bin/bash
- mysql -u root -p
- 连接到主机,信息参考主节点的日志文件
- change master to master_host=’10.10.10.99’, master_user=’root’, master_password=’123456’, master_log_file=’master-bin.000001’, master_log_pos=154;
- start slave(stop slave);
- 查看主从状态
- show slave status;
- 修改配置