mysql主從同步因斷電產生的不能同步問題 偶爾因為斷電導致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;然後好了,我遇到的不是這個情況,如果你遇到了,按我上面的不能解決的話,可以試著釋放內存看看。