千家信息网

【Mysql】ERROR 1872 (HY000): Slave failed to initialize relay log info

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,背景":在线将数据库目录迁移到k另一个目录后启动slave进程报错:start slave;ERROR 1872 (HY000): Slave failed to initialize relay l
千家信息网最后更新 2025年02月01日【Mysql】ERROR 1872 (HY000): Slave failed to initialize relay log info背景":在线将数据库目录迁移到k另一个目录后启动slave进程报错:
start slave;

ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository


解决办法:
  1. 修改index文件和info文件
  2. index里面的记录是原来的目录的
  3. [root@Yun-MySQL02 3306]# more mysqlrelay.index
    /data/mydata/3306/mysqlrelay.000006 ---修改为新的中继日志目录即可
    /databak/3306/mysqlrelay.000007
    /databak/3306/mysqlrelay.000008
    /databak/3306/mysqlrelay.000009
    /databak/3306/mysqlrelay.000010

  4. [root@Yun-MySQL02 3306]# more relay-log.info
    7
    /databak/3306/mysqlrelay.000007 ----修改为新的中继日志目录
    29378841
    mysql-bin.000051
    706927394
    0
    0
    1




    注意:有可能有的环境找不到relay-log.info,那是因为参数设置的原因
    1. 在MySQL 5.6.2之前,slave记录的master信息以及slave应用binlog的信息存放在文件中,即master.info与relay-log.info。在5.6.2版本之后,允许记录到table中,参数设置如下:
    2. master-info-repository = TABLE ---FILE表示以文件方式
    3. relay-log-info-repository = TABLE ---FILE表示以文件方式
    4. 对应的表分别为mysql.slave_master_info与mysql.slave_relay_log_info,且这两个表均为innodb引擎表。


    5. mysql> select * from mysql.slave_master_info\G:
    6. *************************** 1. row ***************************
    7. Number_of_lines: 23
    8. Master_log_name: mysql-bin.000129
    9. Master_log_pos: 760146983
    10. Host: 192.168.10.1
    11. User_name: repl
    12. User_password: aaafdffdgbh_$3KFUH
    13. Port: 3307
    14. Connect_retry: 60
    15. Enabled_ssl: 0
    16. Ssl_ca:
    17. Ssl_capath:
    18. Ssl_cert:
    19. Ssl_cipher:
    20. Ssl_key:
    21. Ssl_verify_server_cert: 0
    22. Heartbeat: 1800
    23. Bind:
    24. Ignored_server_ids: 0
    25. Uuid: 6c8a10ed-ed0b-11e4-91eb-00163ec546aa
    26. Retry_count: 86400
    27. Ssl_crl:
    28. Ssl_crlpath:
    29. Enabled_auto_position: 1
    30. 1 row in set (0.07 sec)


    mysql> show variables like 'relay%';
    +---------------------------+--------------------------------+
    | Variable_name | Value |
    +---------------------------+--------------------------------+
    | relay_log | /databak/3306/mysqlrelay |
    | relay_log_basename | /databak/3306/mysqlrelay |
    | relay_log_index | /databak/3306/mysqlrelay.index |
    | relay_log_info_file | relay-log.info |
    | relay_log_info_repository | FILE |
    | relay_log_purge | ON |
    | relay_log_recovery | OFF |
    | relay_log_space_limit | 0 |
    +---------------------------+--------------------------------+



0