slave_master_info和slave_relay_log_info中的Master_log_pos不一致

最近在研究mysql的主从,发现一个问题,我在主库做任何修改时,在从库中只有slave_relay_log_info中的Master_log_pos在变化,而slave_master_info中的Master_log_pos竟然不发生变化

1. 首先看参数

(root@localhost)[mysql]> show variables like '%repository%';
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| master_info_repository    | TABLE |
| relay_log_info_repository | TABLE |
+---------------------------+-------+

 

2. 通过官方文档看这两张表的定义

1

2


3. 看从库的同步情况

3

 

4. 查看这两张表的内容          
        

45  

 

5. 问题

可以看到slave_master_info中的Master_log_pos一直是154,而按照官方文档的说明,它应该也是1051才对,这是什么原因呢。通过询问摩天轮的大神,原来是这个参数sync_master_info搞的鬼。这个参数控制从库多久更新一次slave_master_info,默认是10000,即每10000个events更新一次。        

转载于:https://www.cnblogs.com/ddzj01/p/11505968.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现两个 MySQL 数据库之间的主从同步,需要进行以下步骤: 1. 在主数据库上开启二进制日志功能,即在主数据库配置文件 my.cnf 添加以下配置: ``` log-bin=mysql-bin server-id=1 ``` 其log-bin 表示启用二进制日志,mysql-bin 是二进制日志文件的前缀,可以自定义。server-id 表示主数据库的唯一标识,可以设置为任意整数。 2. 在从数据库上配置主从复制,即在从数据库配置文件 my.cnf 添加以下配置: ``` server-id=2 relay-log=mysql-relay-bin relay-log-index=mysql-relay-bin.index ``` 其,server-id 表示从数据库的唯一标识,与主数据库不同即可。relay-logrelay-log-index 表示从数据库继日志文件的前缀和索引文件名,可以自定义。 3. 在主数据库上创建用于复制的账号,并授权给从数据库,如下所示: ``` CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; ``` 其,repl 是用于复制的账号,% 表示允许任意 IP 地址连接,password 是该账号的密码。GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' 表示授予该账号复制权限。 4. 在从数据库上启动主从复制,执行以下命令: ``` CHANGE MASTER TO MASTER_HOST='master_host', MASTER_PORT=3306, MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=4; START SLAVE; ``` 其MASTER_HOST 表示主数据库的 IP 地址,MASTER_PORT 表示主数据库的端口号,MASTER_USER 和 MASTER_PASSWORD 分别表示用于复制的账号和密码。MASTER_LOG_FILE 和 MASTER_LOG_POS 分别表示主数据库当前二进制日志文件名和位置,可以通过 SHOW MASTER STATUS 命令查看。 执行完以上步骤后,从数据库就可以实现主从同步了。需要注意的是,如果主数据库的数据发生了变化,需要在从数据库上重新执行 CHANGE MASTER TO 和 START SLAVE 命令,以更新复制信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值