MYSQL 主从同步避坑版教程

由于项目上数据同步要求,最近看了很多mysql主从同步的帖子,也跟着很多帖子自己搭了一遍,最后发现了很多容易踩坑的地方。下面从头到尾讲一遍

  1. 主从同步对版本有严格的要求,主从的mysql版本一定要一致
  2. 请确保修改的my.ini/my.cnf文件是你安装的mysql程序所使用的

确保上面两点之后,那么让我们开始搭建主从同步吧。

首先是主端配置

这部分一定要注意server-id不能与下面配置的从端相同。

同时show master status 之后,file与position参数为空的话,有以下两种可能情况

1.修改的my.ini文件错误,不是当前服务所使用的

2.修改文件后,未进行服务的重启

主端配置成功后,下面我们来进行从端的配置

这边也存在容易踩坑的地方

如果主端的端口号不是默认的3306,需要追加端口设置。其余需要改的设置,可以使用命令 show slave status\G 来查看参数列表

master_log_file和master_log_pos的值分别为之前在主机运行show master status时记录下的File和Position的结果如果报错误,说slave线程正在运行,不能设置,这样的话,执行mysql>stop slave; 停止slave线程,然后再设置连接的参数;设置完之后,执行 mysql> start slave; 开启slave线程;执行mysql> show slave status\G   (没有分号)。如果出现

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

代表配置成功

主从设置成功后,再正常情况下,同步正常,但当从端网络中断或者网络波动时,由于mysql自身的设定问题,在从端网络恢复正常后,需要30分钟到60分钟才能进行同步(此处也是坑)如果需要加快同步速度,需要修改mysql相关参数

具体原理请参照https://blog.51cto.com/wwdhks/2103885这位老哥的帖子。

补充说明一点 个人在测试中发现 从端设置完 -slave-net-timeout 后,需要将slave 关闭 再开启一次才会生效

同时主从模式也可以互为主从,当互为主从时避免操作同一张表。

发布了2 篇原创文章 · 获赞 1 · 访问量 90

猜你喜欢

转载自blog.csdn.net/cainiaosl/article/details/104948056