使用mysql_upgrade命令_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库的操作完成,且保留了所有的用户权限。

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库的操作完成,且保留了所有的用户权限。
经验分享 程序员 微信小程序 职场和发展