主从报错
Slave_IO_Running: No
Slave_SQL_Running: No
Last_SQL_Errno: 1872
Last_SQL_Error: Slave failed to initialize relay log info structure from the repository
报错分析
这个错误表示从服务器在初始化中继日志信息结构时失败了。可能的原因有:
-
主从服务器的二进制日志格式不一致。请检查主从服务器的二进制日志格式是否一致,如果不一致,需要修改其中一个服务器的二进制日志格式,使其与另一个服务器保持一致。
-
主从服务器的二进制日志文件名或位置不一致。请检查主从服务器的二进制日志文件名和位置是否一致,如果不一致,需要修改其中一个服务器的二进制日志文件名或位置,使其与另一个服务器保持一致。
-
主从服务器的二进制日志已经损坏。请检查主从服务器的二进制日志是否损坏,如果损坏,需要修复或重新同步数据。
-
主从服务器的复制用户权限不足。请检查主从服务器的复制用户是否具有足够的权限,如果没有,需要授权相应的权限。
处理办法
stop slave;
reset slave;
start slave;
即可处理
补充:
RESET SLAVE
命令在MySQL复制中用于重置从服务器的复制状态。具体来说,它做了以下操作:
-
清除从服务器上的二进制日志文件(binlog)和中继日志文件(relay log)。这意味着从服务器将丢失这些日志文件中的所有数据。
-
将从服务器的复制状态重置为初始状态。这包括将复制位置指针(slave_IO_running和slave_SQL_running)设置为0,表示从服务器不再执行任何复制操作。
-
将从服务器的复制过滤规则清空,这意味着所有主服务器上的数据都将被复制到从服务器上。
需要注意的是,执行RESET SLAVE
命令后,从服务器将失去与主服务器之间的同步关系,需要重新配置主从复制。因此,在执行此命令之前,请确保已经备份了从服务器上的所有重要数据。