#1548 - Cannot load from mysql.proc. The table is probably corrupted
MySQL のテーブルが壊れている、という意味の、初めて見るエラーメッセージに遭遇しました。
#1548 - Cannot load from mysql.proc. The table is probably corrupted
でも、check table しても問題はなし。
mysql> check table mysql.proc extended;
+------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------+-------+----------+----------+
| mysql.proc | check | status | OK |
+------------+-------+----------+----------+
1 row in set (0.00 sec)
念のためDBをダンプして、drop & create しても変化なし。こんなときは mysql_upgrade すればいいらしい。テーブルの構造や存在などの整合性を正してくれるとのこと。
正確には、このコマンドは「examines all tables in all databases for incompatibilities with the current version of MySQL Server」、つまり、MySQLサーバーのバージョンとデータとの不整合を正してくれる。「should be executed each time you upgrade MySQL」なので、本当は yum update で MySQl がバージョンアップされたときにやっておくべきなのでしょう(え、自動でやってくれないの?)。
mysql_upgrade
Looking for ‘mysql’ as: mysql Looking for ‘mysqlcheck’ as: mysqlcheck FATAL ERROR: Upgrade failed </code>
あ、失敗した。ユーザー名とパスワードが必要らしい。
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 〜 テーブル名がずらずら 〜 </code>