mysql_upgrade命令

 

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 < fix_priv_tables mysqlcheck --all-databases --check-upgrade --fix-db-names --fix-table-names
********************************************************************************************************************************************************
由于数据量很大,处于谨慎考虑,决定只更新系统表,即mysql库
#./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库的操作完成,且保留了所有的用户权限。
原文地址:https://www.cnblogs.com/zengkefu/p/5678048.html