docker中搭建mysql主从复制

本文主要讲的是docker中安装的mysql搭建主从复制,其实和网上的一些其他教程是一样的,主要是记录下自己遇到的问题。

1、首先进入mysql容器中:

2、 进入mysql安装目录,修改配置文件:

注意:这里不是  etc/mysql/my.cnf, 而是 etc/mysql/mysql.conf.d/mysqld.cnf ;

很多教程都是修改的前者,会导致mysql重启失败,这是本人遇到的坑。

编辑此配置文件,主库增加如下配置:

server-id = 1
log-bin=master-bin             //主服务器日志文件//
log-slave-updates=true      //从服务器更新二进制日志//
#可选配置
#binlog-do-db=mstest //要同步的mstest数据库
#binlog-ignore-db=mysql //要忽略的数据库

(如果容器内没有用安装vim,请参考:https://blog.csdn.net/HXNLYW/article/details/90238247):

 从库增加如下配置:

server-id = 2
relay-log=relay-log-bin             //从主服务器上同步日志文件记录到本地//
relay-log-index=slave-relay-bin.index   //定义relay-log的位置和名称//

3、主从数据库修改完配置均需要重新启动:

4、主库创建同步用户:

用第三方工具(navicat)连接到主数据库,依次执行如下语句,看到截图内容,则表示主库配置成功:

CREATE USER 'replication'@'192.168.145.%' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.145.%';

show master status;

截图:

 

 5、从库配置主库通信

同样用第三方工具(navicat)连接到从数据库,依次执行如下语句,如截图内容,Slave_IO_Running,Slave_SQL_Running都是 Yes,则表示从库配置成功:

CHANGE MASTER TO MASTER_HOST='192.168.145.145', MASTER_USER='replication', MASTER_PASSWORD='123456', MASTER_LOG_FILE='master-bin.000008', MASTER_LOG_POS=635;

START SLAVE;

show slave status;

截图:

Slave_IO_State #从站的当前状态 
Slave_IO_Running: Yes #读取主程序二进制日志的I/O线程是否正在运行 
Slave_SQL_Running: Yes #执行读取主服务器中二进制日志事件的SQL线程是否正在运行。与I/O线程一样

一些命令

查看主服务器的运行状态:

show master status;

查看从服务器主机列表:

show slave hosts;

获取binlog文件列表:

show binary logs;

查看指定binlog文件的内容:

show binlog events in 'mysql-bin.000001';

启动停止从库复制线程:

START SLAVE;
STOP SLAVE;

参考文章:https://segmentfault.com/a/1190000010867488

代码实现读写分离请参考(springboot+mysql):https://blog.csdn.net/HXNLYW/article/details/90519757

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值