萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql版本升級導致的一些錯誤總結

mysql版本升級導致的一些錯誤總結

本文章來給各位同學介紹一下關於mysql版本升級導致的一些錯誤總結,希望此經驗對各位同學會有所幫助哦。

在項目過程遇到一些因為數據庫版本原因發生的一些錯誤

mysql服務器升級數據還原後表結構不能顯示

mysql服務器升級後,數據庫數據還原後,在使用navicat進行desc表結構是出現了

“1558 – Column count of mysql.proc is wrong. Expected 20, found 16. Created with MySQL 50018, now running 50146. Please use mysql_upgrade to fix this error.”這樣的錯誤內容

我的mysql服務器是從5.1升級到了5.5版本,而原數據庫表的備份與恢復是直接copy mysql data目錄;數據都是完好的。搜索查明

解決方案就是:

mysql.proc
這個是5.1裡面的系統表來的,用來記錄存儲過程或函數的信息.你的數據庫肯定作過升級或用不同的版本進行備份遷移恢復.

使用命令:mysql_upgrade 就可以解決

mysql_upgrade -u root –datadir=/opt/mysql –basedir=/opt/mysql/data –password=123456

MySQL utility for upgrading databases to new MySQL versions.

5.6.10 mysqldump: Couldn’t execute ‘SELECT @@GTID_MODE’ 執行錯誤

mysqldump: Couldn’t execute ‘SELECT @@GTID_MODE’: Unknown system variable ‘GTID_MODE’ (1193)

不知道系統變量GTID_MODE,google搜索在mysql官方找到一片bug報告

mysqldump –set-gtid-purged=AUTO does not detect if mysqld has GTIDs

5.6.5 introduced GTIDs. mysqldump 5.6 was made
compatible  to use GTIDs
2. In versions < 5.6, where GTIDs are not
even defined, mysqldump 5.6 fails as it cannot
execute ‘SELECT @@GTID_MODE’
3.  using –set-gtid-purged=AUTO, should detect whether
the server has GTIDs enabled or not.  However, this
option works only for 5.6 versions.

WORKAROUND: if you are using mysqldump 5.6 to backup mysql-5.5  and old database
versions, use –set-gtid-purged=OFF option.

Fix:  THe fix is to check for the server version before executing ‘select @@gtid_mode’

5.6.5版本引入GTIDs;如果mysql version 小於5.6,GTIDs是沒有定義的,mysqldump5.6不能執行’SELECT @@GTID_MODE’ ;應該使用–set-gtid-purged=AUTO用來檢測GTIDs是否啟用,但是這個選項只能在5.6版本mysql上工作

我要備份的遠程服務器是

原先按正常的mysqldump語法如下則會報錯

所以應該用mysqldump 5.6 對mysql server版本小於5.6版本或者是更老的版本進行數據備份時,會首先執行“SELECT @@GTID_MODE”這樣的語句(盡管select @@gtid_mode 得到的屬性值它是off)

則要有加上 –set-gtid-purged=OFF 屬性了,導出成功

copyright © 萬盛學電腦網 all rights reserved