実家から帰ってサイトを見ると「エラー:データベースにつながりません」が発生。なぜにMySQLが動いていない? ログインしてみるとVPSに再起動の形跡あり。あー,そーいえばメンテナンスのためVPS再起動するよ,というアナウンスがあったっけ。
しゃーない,MySQLを起動するかと思ったら,…「Failed」。ぬ?
いろいろしらべたところ,remiリポジトリのMySQLに変えてからの再起動による確認を渋ったせい。で,原因は,MySQLのバージョンアップに伴う(?)コンフィグ,ファイルのバッティングなど。
解決までの手段をいかにメモる。
1. MySQLの再インストール
こんなエラーが発生。これじゃぜんぜん見当がつかない。
[ERROR] Error message file '/usr/share/mysql/english/errmsg.sys' had only 480 error messages,
but it should contain at least 710 error messages.
Check that the above file is the right version for this program!
これはすごい納得はいかないのだが,ココにあるとおりMySQLのパッケージを消して再度導入して解決。
# yum remove mysql.i386
# yum remove mysqlclient15.x86_64
(依存関係で,dovecot,mysql-server,perl-DBD-MySQLが削除)
# yum install --enablerepo=remi mysqlclient5.x86_64
(依存関係で,perl-DBD-MySQLがインストール)
# yum install --enablerepo=remi mysql-server.x86_64
# yum install --enablerepo=remi dovecot.x86_64
2. コンフィグの変更
やっとエラーが変わった,と思ったら今度はこんな怒られ方をする。
[ERROR] /usr/libexec/mysqld: unknown variable 'default-character-set=utf8'
[ERROR] Aborting
これはココにあるとおり,[mysqld]セクションの default-character-setパラメータをcharacter-set-serverに変える。ちなみに[mysql]セクションはそのまま。同じ名前のパラメータだからと言って変えるとこれまた怒られる。
character-set-server = utf8
3. データベースのアップグレード
1.および2.でとりあえず起動はするが,ログを見ると大量のエラー。1.のサイトにもそのまんまの内容があったのでそれに従ってアップグレードコマンドを実行(そんなのあるのね……)。
# /etc/rc.d/init.d/mysqld start
# mysql_upgrade -u root -p
これでエラーなくMySQLは動くようになった。
(番外編)chkconfigによるブート時のサービス起動設定
しかしサーバの他のサービスを見るとPostfixとかdovecotとか軒並み停止になってる。どうも,後から自前で構築したサービスをchkconfigで自動起動するように設定してしていないっぽい。Postfixに至ってはエントリにすら登録されていない。
こりゃ手を抜きすぎですな。つーことで chkconfigをたたく。
# chkconfig -add postfix
# chkconfig postfix on
# chkconfig dovecot on
# chkconfig mysqld on
これでひとまずOKか。
いじょ。