[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」コマンドを実行して、テーブル構造が新しく更新できたので、うまく修復できた。
というのが、僕の推測。