mysql_upgrade を実行する

昨日MySQLをアップグレードしたんですが、いろいろすったもんだした挙句、無事に動いていると思っていました。

しかし、ログをよく確認すると以下のようなログが。。。

110420 21:20:14 [ERROR] Column count of mysql.
proc is wrong. Expected 20, found 16.
Created with MySQL 50044, now running 50511.
Please use mysql_upgrade to fix this error.

どうやら問題があるので mysql_upgrade をしてね。ということらしい。

mysql_upgrade とは?

MySQLのリファレンスに以下のようなページがありました。

MySQL のアップグレードでは、その度に、mysql_upgrade を実行します。これにより、データベース内のテーブルにおける最新の MySQL Server との互換性をチェックすることができます。該当テーブルが非互換の場合は、チェックの対象になり、問題があれば、そのテーブルを修正します。mysql_upgrade コマンドは、システム テーブルのアップグレードも行うため、新たな権限と追加機能を使用できるようになります。

MySQLをアップグレードしたら、mysql_upgradeをしてね。だそうです。知らんかった。

mysql_upgrade のやり方

mysqld が起動している状態で以下のコマンドを実行する。

mysql_upgrade -u root -p

-p はパスワードプロンプトを出してねという意味なので、環境に応じて。

というわけで、エラーログもでなくなりました。