昨日までなんともなかった「WordPress」で作ったこのブログが、なんていう事でしょうアクセスしたらトップページに「データベース接続確立エラー」と大きな文字が・・・。
さて何が起きてるのかな?・・・。
データベース接続確立エラーが突然!
WordPressってヤツは、PHP(プログラム言語)とMySQL(データベース)で作られていて簡単に自分のブログを作ることができる魔法のようなプログラムなんですが難しい専門知識が要らないから何か起きると余計に面倒なことが・・・。
WordPressをインストール後の「データベース接続確立エラー」
よくあること?なのかもしれませんが、「WordPress のためのデータベース名」「 MySQL データベースのユーザー名」「MySQL データベースのパスワード」「MySQL のホスト名」が間違っているということです、この場合はWordPressの設定ファイル「wp-config.php」を適切な数値に書き換えれば問題は解決されるはずです。
今回は昨日までアクセスができていたのに急に「データベース接続確立エラー」が・・・
データベース名やユーザー名やパスワードは
「wp-config.php」を調べてみましたが間違っているようなところもありませんでした、「phpMyAdmin」にログインしてデーターベースも異常はありませんでした。
MySQL(データベース)も正常に動いているようです、同じデータベース内のテーブルを使ったサイトは表示されているのでこのブログだけが「データベース接続確立エラー」です。
こうなってくると?マークが???て感じです。
そうこうしてると、先ほどまで表示されていたほかのサイトも「データベース接続確立エラー」ってなってしまいました。
いきなりですか?困ったもんですねぇ~、何がいけないのかなぁ~
数ある「データベース接続確立エラー」の記事
いろいろ調べてると星の数ほど「データベース接続確立エラー」の記事を発見しました、ですが殆どが上記した「wp-config.php」をチェックしてみろって書かれてるだけで解決にはいたりませんでした。
かなり時間を費やして行きついた先に、「MySQLソケット(mysql.sock)の位置の違い」って記事を発見!これはもしかしたら復活できるか?と熟読・・・。
まずやる事は
「wp-config.php」のデバッグ出力を変更してエラーの詳細を確認することから始まります、サーバーから「wp-config.php」をダウンロードしてテキストエディタで開きます。
「wp-config.php」内に「開発者へ: WordPress デバッグモード」というところがあります、そこを読んでいくと分かると思いますが「define(‘WP_DEBUG’, false);」を「define(‘WP_DEBUG’, true);」に変えてサーバーにアップロードすると・・・。
Warning: mysql_connect(): No such file or directory in /data/html/〇〇〇〇/wp-includes/wp-db.php on line 1474
といったエラーが画面に出てきました、どうやら「mysql.sock」の位置がずれているようで「データベース接続確立エラー」が出てるようです。
サーバー環境によってそれぞれ違うようですが、私が使っているサーバーだと「define( ‘DB_HOST’, ‘localhost’ );」のところを「define( ‘DB_HOST’, ‘localhost:/var/lib/mysql/mysql.sock’ );」に直したらブログが表示されるようになりました。
「wp-config.php」の「define(‘WP_DEBUG’, true);」を「false」戻して、「define(‘DB_HOST’, ‘localhost’);」を「localhost:/var/lib/mysql/mysql.sock’」に直してサーバーへアップロードして見事そのほかのサイトも表示されようになりました。
これはサーバー側のMySQLが変わったって事なの?かはわかりません、勝手に変更するなんてこともありないので原因は不明のままです。
最後に
ネット上には沢山の情報がありますが、今回の事例は見つけるのに大変時間がかかりました「データベース接続確立エラー」って何か違う検索の仕方があるのかな?
今回「データベース接続確立エラー」で助けていただいたブログ記事は↓
リンクWordPressでパスワードやデータベース名は合っているのに『データベース接続確立エラー』がでる
大変勉強になりました、ありがとうございました。