昨日、このブログにログインしようとした所500エラーが出て入れない状況となっていました。
とりあえずサーバの調子を見てみたところ、問題無し。
ブログ以外のページにはアクセス出来たのでwordpressの障害と判断して、デバッグモードで開いてみたところ。
「MySQLとの接続を確立出来ませんでした」とのメッセージが出たのでMYSQLを確認して見ました。
# /etc/rc.d/init.d/mysqld start
# mysql -u USER -p
Enter password:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
MySQLが落ちてる?そう思って立ち上げようとしたものの
# /etc/rc.d/init.d/mysqld start
MySQL Daemon failed to start.
mysqld を起動中: [失敗]
このような状態で、restartしても同じ。
そこでMySQLのログを見てみます。
120126 03:57:43 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120126 3:57:44 [Note] Plugin ‘FEDERATED’ is disabled.
/usr/libexec/mysqld: Table ‘mysql.plugin’ doesn’t exist
120126 3:57:44 [ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.
120126 3:57:44 InnoDB: The InnoDB memory heap is disabled
120126 3:57:44 InnoDB: Mutexes and rw_locks use InnoDB’s own implementation
120126 3:57:44 InnoDB: Compressed tables use zlib 1.2.3
120126 3:57:44 InnoDB: Using Linux native AIO
120126 3:57:44 InnoDB: Initializing buffer pool, size = 128.0M
120126 3:57:44 InnoDB: Completed initialization of buffer pool
120126 3:57:44 InnoDB: highest supported file format is Barracuda.
120126 3:57:45 InnoDB: Waiting for the background threads to start
120126 3:57:46 InnoDB: 1.1.8 started; log sequence number 1588771
120126 3:57:46 [ERROR] /usr/libexec/mysqld: unknown variable ‘default-character-set=utf8’
120126 3:57:46 [ERROR] Aborting
怪しい箇所について調べている内に、unknown variable ‘default-character-set=utf8’とある箇所が最も怪しいという判断になりました。
要は設定されている「default-character-set=utf8」がデータベース側で知らないって事で弾かれている雰囲気ですので。
Please run mysql_upgrade to createとか言われても、MySQLが立ち上がらないのでupgrade出来ませんし・・・
そう言えば、数日前にyumでアップデータした時MySQLも入っていた気がするけど、その時に何か仕様が変わったのかなと思ってみたり。
そこで上記エラー文で調べて、こちらのページを参考に対処しました。
/etc配下にあるmy.cnfを開いて編集します。
[mysqld]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
default-character-set = utf8
character-set-server=utf8[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid]default-character-set = utf8
[mysql]
default-character-set = utf8
青字がコメントアウトした箇所で赤字が追記箇所です。
そしてMySQLを起動します。
# /etc/rc.d/init.d/mysqld start
mysqld を起動中: [ OK ]
そしてデータベースに接続出来ることも確認し、念のためにupgradeしました。
# mysql_upgrade -u USER -p
これで今回の対処は終了。
[ad#ad_footer]
コメント
コメントを投稿