MySQL讀取Binlog日志常見(jiàn)的3種錯(cuò)誤
1. mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4'
當(dāng)我們?cè)趍y.cnf中添加default-character-set=utf8mb4選項(xiàng),那么在mysqlbinlog查看binlog時(shí)就會(huì)報(bào)錯(cuò)。
解決方案:.mysqlbinlog 后面添加 --no-defaults 選項(xiàng)
例如:
mysql bin可執(zhí)行文件所在路徑/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.
在進(jìn)行mysqldump導(dǎo)出數(shù)據(jù),進(jìn)行數(shù)據(jù)庫(kù)遷移。而在遷入時(shí),報(bào)了上面的錯(cuò)誤。
查詢(xún)?cè)蚴?:當(dāng)前GTID_EXECUTED參數(shù)已經(jīng)有值,而從源數(shù)據(jù)庫(kù)中倒出來(lái)的dump文件中包含了SET @@GLOBAL.GTID_PURGED的操作
解決方法:
方法一:reset mater
這個(gè)操作可以將當(dāng)前庫(kù)的GTID_EXECUTED值置空
方法二:--set-gtid-purged=off
在dump導(dǎo)出時(shí),添加--set-gtid-purged=off參數(shù),避免將gtid信息導(dǎo)出
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.
當(dāng)我們?cè)谑褂?mysqlbinlog 工具進(jìn)行 指定--stop-position 、--start-position 進(jìn)行恢復(fù)(部分恢復(fù))時(shí)報(bào)的錯(cuò)。
例如,binlog中的數(shù)據(jù)如下:
當(dāng)我們選擇的開(kāi)始點(diǎn)是 Query 對(duì)應(yīng)的 Pos (713),,而不是 Gtid對(duì)應(yīng)的Pos(648)就會(huì)報(bào)錯(cuò)。
下面的寫(xiě)法報(bào)錯(cuò):
安裝路徑/bin/mysqlbinlog --no-defaults --start-position=713 --stop-position=1646
下面的寫(xiě)法沒(méi)有報(bào)錯(cuò):
安裝路徑/bin/mysqlbinlog --no-defaults --start-position=648 --stop-position=1646 .........
總結(jié)
以上所述是小編給大家介紹的MySQL讀取Binlog日志常見(jiàn)的3種錯(cuò)誤,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
用HAProxy來(lái)檢測(cè)MySQL復(fù)制的延遲的教程
這篇文章主要介紹了用HAProxy來(lái)檢測(cè)MySQL復(fù)制的延遲的教程,HAProxy需要使用到PHP腳本,需要的朋友可以參考下2015-04-04MySQL對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行復(fù)制的基本過(guò)程詳解
這篇文章主要介紹了MySQL對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行復(fù)制的基本過(guò)程,解讀了Slave的一些相關(guān)配置,需要的朋友可以參考下2015-11-11