解决Cannot load from mysql.proc.报错问题

最近更新了 mysql 版本,发现如下报错:

Cannot load from mysql.proc. The table is probably corrupted

导致一些数据库表乱码,网上查询发现是由于 mysql.proc 升级时有个字段没有升级成功。

查询mysql版本:

# mysql --version

在 mysql 5.1 版本中 mysql.proc 表的 comment 字段类型是 varchar(64),执行如下SQL语句修复:

ALTER TABLE `proc` MODIFY COLUMN `comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';

在mysql 5.5 版本中 mysql.proc 表的 comment 字段类型是 text,执行如下SQL语句修复:

ALTER TABLE `proc` MODIFY COLUMN `comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL AFTER `sql_mode`;

收工!