【昊鼎王五】mysql启动slave时报1872错误,初始化relay log结构失败了,为什么会失败呢,根源是什么?
前言:
在上一篇文章里面讲了如何解决“Slave failed to initialize relay log info structure from the repository, Error_code: 1872”
网址请见:https://blog.csdn.net/haoding205/article/details/102599340
一.现象:
dba:(none)> start slave;
ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
解决方法请见:https://blog.csdn.net/haoding205/article/details/102599340
二.分析:
MySQL [(none)]> show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.1.11
Master_User: fuzhi
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000007
Read_Master_Log_Pos: 1015219027
Relay_Log_File: centos-relay-bin.000013
Relay_Log_Pos: 1015219240
Relay_Master_Log_File: mysql-bin.000007
Slave_IO_Running: No
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1872
Last_Error: Slave failed to initialize relay log info structure from the repository
Skip_Counter: 0
Exec_Master_Log_Pos: 1015219027
Relay_Log_Space: 0
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)
启动slave时,使用repository中信息初始化relay log结构失败了。为什么失败了?
是因为上述的某些参数中,一定是有某些不匹配,找不到最新的信息导致错误了。
三.根源:
和当初搭建MYSQL的运维人员沟通排查,发现机器原来的名称是centos,
而此刻机器的名称叫做“mysql-2-cn”,所以重启MYSQL进程之后,系统生成的Relay_Log_File就以当前机器名字来命名,比如叫“mysql-2-cn-relay-bin.000002”,
而mysql.slave_relay_log_info表中保留了以前的复制信息,记录的Relay_Log_File是centos-relay-bin.000013
前后信息不匹配,导致启动失败,报错。
四.总结:
所以,一句话概括:
不要随便修改机器名称,就跟人名一样,改名请慎重。
改名会影响到MYSQL的主从配置,改了名就需要重新配置MYSQL的主从,否则就轻易不要“改名”。
好了,聪明如你,就讲到这里吧,有问题的话可以留言。