MySQL主从同步故障解决

首先了解下面两个状态的含义:

Slave_IO_Running:连接到主库,并读取主库的日志到本地,生成本地日志文件

Slave_SQL_Running:读取本地日志文件,并执行日志里的SQL命令。

如何检查主从配置是否成功

执行start slave;命令启动从服务器后,使用show slave status;命令检查状态,需要保证结果显示中的Slave_IO_RunningSlave_SQL_Running 状态都要为Yes, 否则主从的配置就是有问题的。

Slave_IO_Running:NO

出现这个错误的原因一般是从库没有启动, 解决办法就是启动从库即可

还有可能是从库连接主库所需主机名、端口、用户、密码等配置问题出错造成的,比较容易解决。如:

Slave_SQL_Running: No

出现这个错误的原因一般是主从服务器的数据不一致造成的,比如:

  • 在主从服务器没有一起启动的情况下执行了操作
  • Slave机器重起后事务回滚
  • 使用从库做了查询之外的更新操作

解决办法

查看主库状态show master status; 记录下File,Position字段,假设为mysql-bin.00000498;

在从库执行:

如果执行某个更新语句后从库没有同步数据,并且从库执行show slave status;发现 Slave_IO_Running:NO并且存在Error比如主键冲突导致无法从主库同步数据,这通常是从库和主库数据不一致导致的问题,如果想要从库跳过本次更新并可以继续保持此后能和主库同步数据,可以简单执行下面的语句跳过这1步更新操作。(当然后果就是从库没有执行和主库一样的更新操作)

Views: 84

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注