MySQLが繋がらなくなってたので対応した

投稿日:

発端

久しぶりにブログでも更新しようかなぁなんて思ってアクセスしたら

エラー:データベースに接続できません

なんて文字がデカデカと表示されてたYo!!
さすがにちょっとあせったので、対応したメモ。

エラー発覚

久々にブログにアクセスしたら冒頭で書いた通り、
エラー:データベースに接続できません
とデカデカ表示されてました。

ログ確認

とりあえず、mysqlの再起動と思って

/etc/init.d/mysqld restart

を実行したんだけど、
MySQL Daemon failed to start のエラー
え、なにコレ怖いと思ってグーグルさんに問いかけた。

そしたらまずはログを見ろみたいな事が書いてあったので、

cat /var/log/mysqld.log

でログを確認したところ、

[ERROR] /usr/libexec/mysqld: unknown variable 'default-character-set=utf8'
[ERROR] Aborting

うん。謎のエラー。どうやらここで落ちていたらしい。

対応

再度ググるとどうやらmy.cnf(MySQLの設定ファイル)をイジルと直るっぽいのが分かったので/etc/my.cnfを開く。
すると、

・
・
# character-set
character-set-server=utf8

default-character-set=utf8

おービンゴ。ありましたね。
** default-character-set=utf8
他の箇所にも同じ記述はされてたんだけど、エラーを見る限り
mysqldのこれをコメントアウトしとけば間違いないかと。
**default-character-set=utf8 → # default-character-set=utf8

そして、mysqlの再起動をかけたところ見事成功!
ブログも見れるしメデタシ、メデタシ。
一応ログを見てみるかと思いログを見ると
[ERROR] Missing system table mysql.proxies_priv; please run mysql_upgrade to create it
おぅ、エラー。何だよ別にブログも見れるし普通に動いてるのになぁと思いつつ、ログに従い

mysql_upgrade -u root -p

を実行。
もう一度ログを見るとエラーも無くなってました。
メデタシ、メデタシ。

それにしても、一体何が起こったんだろと思ってさらっと調べたところ、どうやらmysqlのアップグレードが行われた模様(多分。
それで、MySQLの設定オプション:default-character-setは廃止になっていたようです。

よーくログを見返すと

[Warning] '--default-character-set' is deprecated and will be re moved in a future release. Please use '--character-set-server' instead.

なんて出てました。

ま、直ってよかった!

投稿日:
カテゴリー: MySQL

作成者: shimabox

Web系のプログラマをやっています。 なるべく楽しく生きていきたい。

1件のコメント

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください