執行mysqlbinlog出現Found invalid event in binary log錯

svoid發表於2015-04-19

MySQL在同一個伺服器上可以安裝N個不同的版本,方便測試,遷移等等。此外,對於大多數Linux系統,整合了mysql,預設會被安裝。因此多版本的問題導致一些莫名的錯誤也是時有發生。今天在提取binlog日誌時,碰到了一個Log_event::read_log_event(): ‘Found invalid event in binary log’。上網搜尋發現是由於mysqlbinlog的版本和在用的mysql版本不一致造成的,需要指定路徑執行

故障描述

mysqlbinlog --start-datetime='2015-04-14 09:00:00' --stop-datetime='2015-04-14 16:00:00' mysql-bin.000170 > userop.log
ERROR: Error in Log_event::read_log_event(): 'Found invalid event in binary log', data_len: 127, event_type: 19

故障分析與解決

# 檢視當前os使用的mysqlbinlog
shell> which mysqlbinlog
/usr/bin/mysqlbinlog

# 檢視mysql當前使用的mysqlbinlog
mysql> show variables like 'basedir';
+---------------+------------------+
| Variable_name | Value            |
+---------------+------------------+
| basedir       | /usr/local/mysql | 
+---------------+------------------+
1 row in set (0.00 sec)

# 對比兩個版本
shell> /usr/bin/mysqlbinlog --version
/usr/bin/mysqlbinlog Ver 3.2 for redhat-linux-gnu at x86_64

shell> /usr/local/mysql/bin/mysqlbinlog --version
/usr/local/mysql/bin/mysqlbinlog Ver 3.3 for linux2.6 at x86_64

# 指定mysqlbinlog路徑
shell> /usr/local/mysql/bin/mysqlbinlog --start-datetime='2015-04-14 09:00:00' --stop-datetime='2015-04-14 16:00:00' mysql-bin.000170 > userop.log

總結

  • 對於生產環境mysql的部署,建議在安裝OS前不安裝預設的mysql或者安裝後解除安裝預設的mysql
  • 因需要存在多版本的情形,應考慮使用直接路徑方式來執行相應的mysql命令列工具

參考:
http://www.linuxidc.com/Linux/2014-12/110654.htm
http://blog.chinaunix.net/uid-20639775-id-324130.html

整理自網路

Svoid
2015-04-15

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29733787/viewspace-1585545/,如需轉載,請註明出處,否則將追究法律責任。

相關文章