Mysql配置主从数据同步(docker下创建)

这里我使用docker创建了两个mysql容器

对外映射端口分别为3008  3009

其中3009对应mysql设为主节点,3008对应mysql设置为从节点

配置主节点

进入docker中mysql目录下

docker exec -it mysql3009 /bin/bash

修改my.cnf文件

vim /etc/mysql/my.cnf

也可以这样设置 可以屏蔽掉实例中不想同步的数据库

 

设置server_id,可以自定义随机值,但是注意要唯一  log-bin 开启二进制日志功能,可以随便取(关键)

重启mysql容器

show variables like '%server_id%';
查看主节点是否设置成功

show master status  查看同步的文件,和行数 后面设置从节点需要用到

在Master数据库创建数据同步用户,授予用户 slave_test REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据

CREATE USER 'slave_test' IDENTIFIED BY '123456'
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave_test'

配置从节点

修改从节点my.cnf文件如下

[mysqld]
## 设置server_id,注意要唯一
server-id=3008  
## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用
log-bin=mysql-slave-bin   
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin

如果主数据库设置了屏蔽某些数据库 下面要如下设置

重启 检查是否配置成功

链接Master(主)和Slave(从)

change master to master_host='192.168.3.60', master_user='slave_test', master_password='123456', master_port=3009, master_log_file='mysql-bin.000003', master_log_pos= 643, master_connect_retry=30;

master_port:Master的端口号,指的是容器的端口号

master_user:用于数据同步的用户

master_password:用于同步的用户的密码

master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值

master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值

master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是30秒

启动  start slave

查看状态  show slave status

说明配置成功

测试

在3009主数据库中创建test01数据库 test表

刷新3008从数据库 发现同步成功

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值