欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql主从同步因断电产生的不能同步问题

程序员文章站 2022-03-16 09:59:08
...

偶尔因为断电导致mysql slave 出现复制错误“Could not parse relay log event entry”

Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave.

 

先查询下状态

show slave status \G

 

Master_Host: 192.168.2.51

                Master_User: backupuser

                Master_Port: 3306

              Connect_Retry: 60

            Master_Log_File: mysql-bin.000078

        Read_Master_Log_Pos: 984673998

             Relay_Log_File: memcached-relay-bin.000039

              Relay_Log_Pos: 747157846

      Relay_Master_Log_File: mysql-bin.000078

           Slave_IO_Running: Yes

          Slave_SQL_Running: No

 

          Skip_Counter: 0

        Exec_Master_Log_Pos: 747157709

            Relay_Log_Space: 984679197

 

如果可以确定主服务器没有问题的话,那么重置下从服务器的同步位置就可以了。

如上可以对应的指令为:

stop slave;

CHANGE MASTER TO  MASTER_LOG_FILE = 'mysql-bin.000078', MASTER_LOG_POS =747157709;

start slave;

再用 show slave status \G 查看状态。如下:

Master_Log_File: mysql-bin.000078

        Read_Master_Log_Pos: 879029246

             Relay_Log_File: memcached-relay-bin.000002

              Relay_Log_Pos: 1336369

      Relay_Master_Log_File: mysql-bin.000078

           Slave_IO_Running: Yes

          Slave_SQL_Running: Yes

            Replicate_Do_DB: 

        Replicate_Ignore_DB: 

         Replicate_Do_Table: 

     Replicate_Ignore_Table: 

    Replicate_Wild_Do_Table: 

Replicate_Wild_Ignore_Table: 

                 Last_Errno: 0

                 Last_Error: 

               Skip_Counter: 0

        Exec_Master_Log_Pos: 748493843

            Relay_Log_Space: 131871772

            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: 339469

 

好了到现在搞定了。

还有说法是内存不够用产生的,有人清除了几个不用的进程释放内存后, stop slave; start slave;然后好了,我遇到的不是这个情况,如果你遇到了,按我上面的不能解决的话,可以试着释放内存看看。