mysql报1548错误-Cannot load from mysql.proc. The table is probably corrupted

来源:网络 文章列表 2019-03-12 8
出现这个问题可能是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,里面的内容为升级后的数据库版本。

腾讯云限量秒杀

1核2G 5M 50元/年 2核4G 8M 74元/年 4核8G 5M 818元/年 CDN流量包 100GB 9元

版权声明

本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。

评论

  • 随机获取
点击刷新
精彩评论

友情链接