docker实现mysql主从复制【实战】


1.创建好主数据库所需目录后,docker run 运行mysql

docker run -p 3307:3306 --name mysql-master \
-v /data/cluster/mymysql/mydata/mysql-master/log:/var/log/mysql \
-v /data/cluster/mymysql/mydata/mysql-master/data:/var/lib/mysql \
-v /data/cluster/mymysql/mydata/mysql-master/conf/my.cnf:/etc/mysql/my.cnf \
-v /data/cluster/mymysql/mydata/mysql-master/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD='****' \
-d mysql:8.0.35


2.创建数据同步用户

create database X default character set utf8mb4 collate utf8mb4_unicode_ci;
create user 'user'@'%' IDENTIFIED WITH mysql_native_password BY '****';
GRANT REPLICATION SLAVE ON *.* TO 'user'@'%';


3.创建好从数据库所需目录后,docker run 运行mysql

docker run -p 3308:3306 --name mysql-slave \
-v /data/cluster/mymysql/mydata/mysql-slave/log:/var/log/mysql \
-v /data/cluster/mymysql/mydata/mysql-slave/data:/var/lib/mysql \
-v /data/cluster/mymysql/mydata/mysql-slave/conf/my.cnf:/etc/mysql/my.cnf \
-v /data/cluster/mymysql/mydata/mysql-slave/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD='*****' \
-d mysql:8.0.35


4.查主数据库信息
记住file和Position的信息
show master status;
5.在从数据库中配置主从复制,登录从数据库mysql终端,执行以下代码:

change replication source to source_host='服务器ip',
source_port=3307,
source_user='user',
source_password='******',
source_log_file='mysql-bin.000003',
source_log_pos=1725;
start replica;


6.查看从数据库状态是否同步
show replica status \G;
#########################
都为yes,说明配置成功
Replica_IO_Running: Yes
Replica_SQL_Running: Yes

主数据库my.cnf配置

[mysqld]
# 设置server_id,同一局域网唯一
server_id=200
# 指定不同步的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
# 设置需要复制的数据库
binlog-do-db=X
# 开启二进制日志功能
log-bin=mysql-bin
# 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
# 设置使用的二进制日志格式
binlog-format=mixed

从数据库my.cnf配置

[mysqld]
# 设置server_id,同局域网唯一
server_id=201
# 指定不同步的数据库
binlog-ignore-db=mysql
# 开启二进制功能,以备slave作为其他数据库实例的master时使用
log-bin=oa-mysql-slave01-bin
# 设置使用的二进制日志格式
binlog_format=mixed
# 开启中继日志
relay_log=mysql-relay-bin
# 标识slave将复制事件写进自己的二进制日志
log_slave_updates=1


参考文章

【保姆级】docker安装MySQL主从复制-腾讯云开发者社区-腾讯云

https://juejin.cn/post/7002217850521796639

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值