修復mysql?

Tags: 作者, 雜誌,

修復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.

相關問題答案