修復mysql 5.1升級至5.5出現的BUG: Cannot load from mysql.proc. The table is probably corrupted
工具/原料
centOS或其他Linux系統
MySQL
方法/步驟
LINUX下將mysql從5.1升級至5.5後,發現存儲過程不能用了。創建和使用存儲過程時就會提示Cannot load from mysql.proc. The table is probably corrupted。
解決方法非常簡單,運行mysql_upgrade命令即可。此命令會在數據目錄下生成一個文本文件mysql_upgrade_info,裡面的內容為升級後的數據庫版本。
但不知道什麼原因,在我這裡無效,升級後各種升級OK,但仍然報這個錯誤。
原因是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`;
This entry was posted in mysql and tagged 5.1, 5.5, corrupted, MYSQL, proc, upgrade by cnwshuai. Bookmark thepermalink.