Mysql报错 Cannot load from mysql.proc

Auth: Jin

Date: 20140716

 

mysql --default-character-set utf8 -h127.0.0.1 -uroot -p < account-20140716-1.sql
ERROR 1548 (HY000) at line 57: Cannot load from mysql.proc. The table is probably corrupted
mysql> SHOW PROCEDURE status;
ERROR 1548 (HY000): Cannot load from mysql.proc. The table is probably corrupted
mysql_upgrade -u root -p
Enter password:
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck with default connection arguments
Running 'mysqlcheck with default connection arguments

# mysql --default-character-set utf8 -h127.0.0.1 -uroot -p < account-20140716-1.sql
正常了

据说原因是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`;

你可能感兴趣的:(mysql)