【MySQL】log event entry exceeded

G8bao7發表於2013-12-19
【問題背景】
在生產環境中的資料庫master-err.log日誌中顯示
130111 20:48:07 [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master', Error_code: 1236
130111 20:48:07 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.001017', position 108609133
【解決方法】
根據提示增加max_allowed_packet大小即可,當前的max_allowed_packet=200M.檢視主庫的mysql-bin.001017日誌,大小為500M,解析出的日誌為1.1G.

選擇將max_allowed_packet調整為1G
在主庫和備庫分別執行
stop slave;
set global max_allowed_packet=1*1024*1024;
start slave;
問題解決!
【相關知識】
這裡說說 max_allowed_packet 
mysql 服務是透過網路包來傳輸資料的(通訊資訊包是指傳送至MySQL伺服器的單個SQL語句或傳送至客戶端的單一行),mysql協議能夠識別的資料包的大小是由max_allowed_packet控制的。
當MySQL客戶端或mysqld伺服器收到大於max_allowed_packet位元組的資訊包時,將發出“log event entry exceeded max_allowed_packet;”錯誤,並關閉連線。就像此次主從複製遇到的,IO 程式從主庫獲取日誌,但是單個日誌中的sql 大小超過了max_allowed_packet的限制,於是報錯,IO thread 程式停止,sql thread 顯示為yes。 對於客戶端,如果通訊資訊包過大,在執行查詢期間,可能會遇到“丟失與MySQL伺服器的連線”錯誤。

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

相關文章