[MySQL]Cannot load from mysql.proc. The table is probably corrupted

mysqlのストアドプロシージャの再登録をしようとすると、下記のエラーが表示された。

ERROR 1548 (HY000): Cannot load from mysql.proc. The table is probably corrupted

mysqldのrestartを実行しても直る気配もなく・・・
そこでネットで調べてみると、
MySQL5.5.6で変なエラーに遭遇した。
にその対策が記載されていたので、下記のコマンドを流してみた。

[root@ ~]# 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.columns_priv                                 OK
mysql.db                                           OK
…
Running 'mysql_fix_privilege_tables'...
OK

すると、ストアドプロシージャの再登録が出来るようになった。
どうやら、ストアドプロシージャを管理しているテーブル構造が、
Ver5.1と今のバージョンVer5.5では異なるらしく、初期インストールされているテーブル構造がVer5.1のものだったらしい。
なので、「mysql_upgrade」コマンドを実行して、テーブル構造が新しく更新できたので、うまく修復できた。
というのが、僕の推測。

MySQLリファレンスマニュアル mysql_upgrade — MySQL アップグレードのテーブル チェック

2011年 6月 22日 | Posted in MySQL
タグ:
まだコメントはありません。

コメントする