yum 経由で MySQL をアップデートした備忘録。
MySQL がバージョン 5.5.3 なってからコマンドやサーバオプション、変数に大幅な変更や廃止が加えられている。グーグルで検索すると今回の変更のことで MySQL が起動しないことがたくさんヒットする。この機会に古い設定を見直しておきたい。
バージョン5.5.x のインストールは無事に済んだが、データベースに繋がらず。
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
再起動しても失敗。ログを見ると、いくつかエラーが見られる。
tail -50 /var/log/mysqld.log
...
110830 12:39:45 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
...
110830 12:39:46 [ERROR] /usr/libexec/mysqld: unknown variable 'default-character-set=utf8'
110830 12:39:46 [ERROR] Aborting
...
110830 12:39:47 [Note] /usr/libexec/mysqld: Shutdown complete
一つ一つ解決。
まずは、デフォルトで文字コードを設定しているが、文字コードの設定の方法が変わったみたいだ。それで MySQL が起動せずにシャットダウン。
my.cnf の設定を変更。[mysqld] ディレクティブにある default-char-set を
default-character-set=utf8
から
character-set-server=utf8
に変更。
再起動ができるようになった。
そしてつぎは、アップグレードの度に実行する mysql_upgrade コマンドでテーブルの互換性をチェック、修正を施す。
mysql_upgrade -u root -p
無事アップグレードが済んで、データベースに繋がった。