前言
7. 创建slave(读数据库)
7.1 创建data和conf配置文件
# 创建文件夹
mkdir -p /usr/local/docker/mysql/slave01
cd /usr/local/docker/mysql/slave01
# 创建MySQL需要的持久卷
mkdir data
# 创建MYSQL的配置文件
mkdir conf
vim conf/mysql.cnf
### 输入下列内容
[mysqld]
# 同一个主从模式下,id不能相同
server-id = 2
# 防止出现1055异常
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
7.2 创建docker-compose.yml
version: '3'
services:
slave01:
restart: always
image: mysql:5.7.29
container_name: slave01
ports:
- 3307:3306
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
volumes:
- ./data:/var/lib/mysql
- ./conf/mysql.cnf:/etc/mysql/conf.d/mysql.cnf
networks:
default:
external:
name: mysql_network
7.3 启动从库
docker-compose -up -d
8. 连接master节点
8.1 使用navicat连接slave节点
8.2 对slave节点操作连接master节点
# 设置连接master
change master to
master_host='master01', # 主库的IP,因为使用了docker隔离机制,所以将其放入同一个网络内,使用服务名来当主机名
master_user='uncle', # 主库同步的用户
master_password='123456', # 密码
master_port=3306, # 主库的端口
master_log_file='mysql-bin.000007', # 同步的文件 通过show master status来获取
master_log_pos=2023; # 开始从第几行同步 通过show master status来获取
# 启动同步
start slave;
# 查看master状态
show slave status;
8.3 相同步骤创建另外一个slave数据库
9. 相关图例
9.1 显示从库的状态show slave status
9.2 在主库内进行操作,从库也会出现相同的操作
10. 其他操作
10.1 停止
# 停止
stop slave;
10.2 重新设置连接master节点
# 重新设置连接master节点
reset slave;
# 设置连接master
change master to
master_host='master01', # 主库的IP,因为使用了docker隔离机制,所以将其放入同一个网络内,使用服务名来当主机名
master_user='uncle', # 主库同步的用户
master_password='123456', # 密码
master_port=3306, # 主库的端口
master_log_file='mysql-bin.000007', # 同步的文件 通过show master status来获取
master_log_pos=2023; # 开始从第几行同步 通过show master status来获取
# 启动同步
start slave;
# 查看master状态
show slave status;