mysql 错误 1548_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。

解决办法也很简单

1、进入mysql安装目录的bin目录,执行mysql_upgrade命令文件。我的是windows,所以很简单

aff01d9d4c3276f969aa12ada21a6ccf.png

执行下此文件,大概可以看到如下信息

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,里面的内容为升级后的数据库版本。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值