MySqlでシステムデータベース作成に失敗した場合
MySqlは/etc/my.cnfをもとにシステムデータベースを作成する。
どうやらMySQL5.5から記述方法がかわっているパラメータがあるらしく(下に記述)、
古い記事を読みながら構築をするとシステムデータベースの作成に失敗する。
挙動としてはmysqldが起動できず、/var/log/mysqlには以下のログが出力される。
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
■対応
/etc/my.cnfを正しく書き換えて、以下のコマンドを実行する
mysql_install_db
これで/var/lib/mysql配下にシステムデータベースが作成される。
ただ、このままではシステムデータベースファイルのパーミッションがrootになっているので、
以下のコマンドでパーミッションを変更してあげる
chown -R mysql:mysql mysql chmod 751 mysql
※問題を起こしていたパラメータ
5.4以前 default-character-set=utf8 5.5以降 character-set-server=utf8