异常描述
1548-Cannot load from mysql.proc. The table is probably corrupted
数据库再执行数据导出时报出了这个异常,显示是“无法执行mysql存储过程,这个表已经损坏”。
网上查找了资料原因是:mysql.proc升级时有个字段没有升级成功。
在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了:
方法一:
ALTER TABLE proc
MODIFY COLUMN comment
text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL AFTER sql_mode
;
方法二:
在dos下输入 mysql_upgrade -uroot -p 回车后会要求您输入密码,输入完密码后他会自动滚屏,提示一大堆ok什么之类的提示!!
本人试过了第二种方法,确实可行,不服来辩!