mysql 創建存儲過程失敗。
查看錯誤日志,發現如下信息:
********************************************************************************************************************************************************
110715 6:17:50 [ERROR] Incorrect definition of table mysql.proc: expected column 'comment' at position 15 to have type text, found
type char(64).
********************************************************************************************************************************************************
由於數據庫是我中途接手的,估計為mysql版本問題,導致的 mysql庫里面相關的privilege表和mysql版本不兼容導致
查看當前mysql版本為 mysql5.5.8.
利用 mysql_upgrade 升級當前的mysql庫。
翻了下手冊:
********************************************************************************************************************************************************
mysql_upgrade executes the following commands to check and repair tables and to upgrade the system tables:
#./bin/mysql_upgrade -u xxx -pxxx -S /tmp/mysql.sock --upgrade-system-tables
到mysql目錄下,查看mysql庫下面的系統表是否有更新,結果發現無。 奇怪
無奈,全部更新升級
#./bin/mysql_upgrade -u xxx -pxxx -S /tmp/mysql.sock
再次到mysql目錄下,查看muysql庫下面的系統表的更新,成了。難道是bug,還是因為采用存儲有緩存的原因?待查
進入數據庫,查看表結構,無更改。
重新啟動數據庫,在查看proc表結構,已經更新了。
本次升級mysql庫的操作完成,且保留了所有的用戶權限。
查看錯誤日志,發現如下信息:
********************************************************************************************************************************************************
110715 6:17:50 [ERROR] Incorrect definition of table mysql.proc: expected column 'comment' at position 15 to have type text, found
type char(64).
********************************************************************************************************************************************************
由於數據庫是我中途接手的,估計為mysql版本問題,導致的 mysql庫里面相關的privilege表和mysql版本不兼容導致
查看當前mysql版本為 mysql5.5.8.
利用 mysql_upgrade 升級當前的mysql庫。
翻了下手冊:
********************************************************************************************************************************************************
mysql_upgrade executes the following commands to check and repair tables and to upgrade the system tables:
mysqlcheck --all-databases --check-upgrade --auto-repair mysql <由於數據量很大,處於謹慎考慮,決定只更新系統表,即mysql庫fix_priv_tables
mysqlcheck --all-databases --check-upgrade --fix-db-names --fix-table-names
********************************************************************************************************************************************************
#./bin/mysql_upgrade -u xxx -pxxx -S /tmp/mysql.sock --upgrade-system-tables
到mysql目錄下,查看mysql庫下面的系統表是否有更新,結果發現無。 奇怪
無奈,全部更新升級
#./bin/mysql_upgrade -u xxx -pxxx -S /tmp/mysql.sock
再次到mysql目錄下,查看muysql庫下面的系統表的更新,成了。難道是bug,還是因為采用存儲有緩存的原因?待查
進入數據庫,查看表結構,無更改。
重新啟動數據庫,在查看proc表結構,已經更新了。
本次升級mysql庫的操作完成,且保留了所有的用戶權限。