http://weble.org/2011/05/16/sakura-vps-and-centos
を参考に一から構築していたのですが、mysqlの起動でこける
Plugin 'FEDERATED' is disabled.
/usr/libexec/mysqld: Table 'mysql.plugin' doesn't exist
110124 18:59:49 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
(略)
みたいなエラーログを吐いていた。
このエラーは検索してたくさん見つかるのだけど、みんないろんな原因があるみたいで、自分と同一の原因&解決法にたどり着くのに時間がかかった。
で、
http://unkar.org/r/db/1295436346
の
>>27と>>33で解決。
/etc/my.cnf の [mysqld] セクションに
skip-grant-tables
をつけてもう一回service mysqld startを実行。起動したらmysql_upgradeをかける。
あとmysql_upgradeはOSのmysqlユーザで実行すること。最後まで通ったらservice mysqld stopして
skip-grant-tablesの記述を削除。
これでmysqlの起動はできたけど、mysql -u root -pしてもエラーでログインできないときは、ユーザ作成に失敗している可能性がある。
自分は、http://bmath.org/wordpress/?p=171の一部の方法を使った。
# yum remove mysql mysql-server
# rm -fr /var/lib/mysql/*
# yum install mysql mysql-server
要するに、なんかゴミがあったんじゃないかと思うわけです。
これでうまくいった。