MySQL讀取Binlog日誌常見的3種錯誤
1. mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4'
當我們在my.cnf中新增default-character-set=utf8mb4選項,那麼在mysqlbinlog檢視binlog時就會報錯。
解決方案:.mysqlbinlog 後面新增 --no-defaults 選項
例如:
mysql bin可執行檔案所在路徑/bin/mysqlbinlog --no-defaults binlog所在目錄/mysql_bin.000005
2.ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.
在進行mysqldump匯出資料,進行資料庫遷移。而在遷入時,報了上面的錯誤。
查詢原因是 :當前GTID_EXECUTED引數已經有值,而從源資料庫中倒出來的dump檔案中包含了SET @@GLOBAL.GTID_PURGED的操作
解決方法:
方法一:reset mater
這個操作可以將當前庫的GTID_EXECUTED值置空
方法二:--set-gtid-purged=off
在dump匯出時,新增--set-gtid-purged=off引數,避免將gtid資訊匯出
mysqldump --set-gtid-purged=off -d dbtest > dbtest.sql
3.ERROR 1782 (HY000) at line 23: @@SESSION.GTID_NEXT cannot be set to ANONYMOUS when @@GLOBAL.GTID_MODE = ON.
當我們在使用 mysqlbinlog 工具進行 指定--stop-position 、--start-position 進行恢復(部分恢復)時報的錯。
例如,binlog中的資料如下:
當我們選擇的開始點是 Query 對應的 Pos (713),,而不是 Gtid對應的Pos(648)就會報錯。
下面的寫法報錯:
安裝路徑/bin/mysqlbinlog --no-defaults --start-position=713 --stop-position=1646
下面的寫法沒有報錯:
安裝路徑/bin/mysqlbinlog --no-defaults --start-position=648 --stop-position=1646 .........
總結
以上所述是小編給大家介紹的MySQL讀取Binlog日誌常見的3種錯誤,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!