mysql 的主從同步掛了,從日志中報的錯如下:
120309 18:39:23 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000004' at position 2207467, relay log './mysqld-relay-bin.000011' position: 2207613
120309 18:39:23 [ERROR] Error in Log_event::read_log_event(): 'read error', data_len: 166, event_type: 2
120309 18:39:23 [ERROR] Error reading relay log event: slave SQL thread aborted because of I/O error
120309 18:39:23 [ERROR] Slave SQL: Relay log read failure: 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.
Error_code: 1594
120309 18:39:23 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000004' position 2207467
分析主要原因是因為斷電,所以引起讀 binlog 出錯,根據網上一些資料,修復的方法是:
1 stop slave;
2 change master to
3 master_host='192.168.1.251',
4 master_user='repl',
5 master_password='password',
6 master_log_file='mysql-bin.000004',
7 master_log_pos=2207467;
8 start slave;
這樣就修復 OK 了.上面的同步文件和同步點 pos 是日志中報錯上次記錄的位置.
作者 php-oa