mysql报1548错误-Cannot load from mysql.proc. The table is probably corrupted
出现这个问题可能是mysql数据库版本升级导致的,可以使用mysql_upgrade 升级修复下。我的情况是将mysql从5.1升级至5.5后,发现存储过程不能用了,报的错误是Cannot load from mysql.proc. The table is probably corrupted。
出现这个问题可能是mysql数据库版本升级导致的,可以使用mysql_upgrade
升级修复下。我的情况是将mysql从5.1升级至5.5后,发现存储过程不能用了,报的错误是Cannot load from mysql.proc. The table is probably corrupted。
解决办法也很简单
1、进入mysql安装目录的bin目录,执行mysql_upgrade命令文件。我的是windows,所以很简单
执行下此文件,大概可以看到如下信息
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/my/base/mysql.sock' Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/my/base/mysql.sock' 。。。。。。。。。。。。。。。。。。。
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.general_log OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.host OK
mysql.ndb_binlog_index OK
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.proxies_priv OK 。。。。。。。。。。。。。。。。。。。。
mysql.user OK
test.test OK R
unning 'mysql_fix_privilege_tables'... OK
当出现许多ok之后,基本上就修复完毕。查询ok。
2、有童鞋可能执行此命令后仍然不能解决问题,可以执行下面这步
ALTER TABLE proc
MODIFY COLUMN comment text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL AFTER sql_mode;
在5.1中mysql.proc表的comment字段是varchar(64):
comment char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT ”,
但在5.5中应该是text:
comment text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, So,执行下面的语句,把这个字段修改为text,就彻底OK了
总结:运行mysql_upgrade命令即可。此命令会在数据目录下生成一个文本文件mysql_upgrade_info,里面的内容为升级后的数据库版本。
版权声明
本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。
评论