當mysqlbinlog版本與mysql不一致時可能導致出哪些問題
首先要確定當前版本是不是mysqlbinlog版本,當不是mysqlbinlog版本時可能會導致出哪些問題,下面通過模擬場景的方法給大家做介紹,希望對大家有所幫助。
看當前mysqlbinlog版本的方法:
mysqlbinlog --version mysqlbinlog Ver 3.3 for Linux at x86_64
場景1:mysql服務器為mysql 5.6,要求mysqlbinlog版本為3.4及以上,否則mysqlbinlog解析時會直接報錯,之前已經碰到過很多次,但是沒有記錄具體的報錯信息,貌似和position位置不存在的報錯信息差不多,后來改用mysqlbinlog 3.4版本以后方可解析;
場景2:今天幫客戶做一個db恢復,備份文件是全庫備份,恢復卻只能恢復某個db到一個特定的時間點。方法如下:mysql加上-o database_name參數(shù)執(zhí)行全備份的sql文件,然后用mysqlbinlog的-d database_name參數(shù)解析指定庫的binlog文件,期間使用到了mysqlbinlog,mysql server是5.6,mysqlbinlog版本是3.3,結果mysqlbinlog解析并沒有報錯,執(zhí)行報錯,查看解析出來的binlog有很多亂碼,起初以為是字符集的問題,但查了半天也沒發(fā)現(xiàn)問題。后來才嘗試用3.4版本的mysqlbinlog解決了這個問題,類似的亂碼如下圖
總結:當mysql服務器版本是5.6時,一定切記要使用版本>=3.4的mysqlbinlog
希望以上內容對大家有所幫助。