いつも通りWordPressで作った自分のサイトにアクセスしてみると・・・
『データベース接続確立エラー』
これ、初めて経験すると大パニックになりますよね。
僕も過去に一度体験したときは、解決法も分からないしもう終わった・・・と思いました。
そして、先日、久しぶりに大規模なエラーを体験しました。
一度体験しているものの、いざ再度体験してみると、結構焦りますね。
そのパニック状況(笑)と解決法をシェアしていこうと思います。
目次
前提条件
この記事を読まれている方の多くは、実際に『データベース接続確立エラー』が起こってしまって、その解決策を探している方だと思います。
その場合、前提条件として押さえておいていただきたいのは、今回の解説は『Xサーバー×WordPress』をベースにしているということです。
サーバーが違うと、以下で解説するファイルが存在する場所や、変更の手順も変わってきますし、そもそもWordPressでない場合には、原因も解決法もまるで変わってくると思います。
そのため、あくまでもこの解決法はXサーバーでWordPressを使っているという状況下で発生した『データベース接続確立エラー』に対するものだと認識しておいて頂けると幸いです。
データベース接続確立エラーの原因
このエラーが発生する原因として、もっとも多いのは『wp-config.php』の記述ミスです。
これはWordPressの場合、管理画面にログインしようとするとエラーメッセージのなかでもwp-config.phpにミスがある可能性が指摘されます。
ほとんどの場合は、wp-config.phpのファイルを正しく記述し直すことでエラーは解決します。
解決のために必要な物→テキストエディタ
wp-config.phpを書き直すために必要なものは、テキストエディタのみでOKです。
テキストエディタがよく分からないという人は、『Windowsに入っているメモ帳のようなもの』だと思ってください。
ただし、このファイルをメモ帳を使って編集してしまうと、改行などが適切に反映されず、まったく別のエラーを引き起こす可能性がありますので、必ず推奨されているテキストエディタを使うようにしましょう。
以下が無料で使うことができるおすすめのテキストエディタです。
- TeraPad
- サクラエディタ
- VisualStudioCode
- Notepad++
- K2Editor
どれを使ってもいいですが、まだテキストエディタをPCにインストールしていないという人の場合は、一番シンプルで動作も軽いTeraPadをとりあえずインストールしておきましょう。
TeraPadのダウンロードは以下よりどうぞ
TeraPad無料ダウンロード(外部サイト)
wp-config.phpの場所と具体的な対処法
エックスサーバーの場合、wp-config.phpというファイルは『ファイルマネージャー』から行くと分かりやすいです。
エックスサーバーのインフォパネルにログインすると、以下のようにサーバーパネルとファイルマネージャーへのログインボタンが現れますので、ここからファイルマネージャーへログインしてください。
ファイルマネージャーへログインすると、以下のように登録されているドメインが一覧表示されます。
このなかから、今回『データベース接続確立エラー』を起こしているサイトのドメインをクリックします。
次の一覧表示されたファイルのなかから、public_htmlをクリックしてください。(ドメイン→public_html)
次に表示されるファイルの一覧の中から、『wp-config.php』を見つけてください。(通常、真ん中あたりにあると思います)
ファイルを見つけることができたら、ファイル名をクリックしてダウンロードします。
テキストエディタでの確認&編集
ダウンロードが完了したら、テキストエディタで開きます。
このなかにある情報のなかで、まず見るべきは
- データベース名
- データベースのユーザー名
- データベースのパスワード
- ホスト名
の4つです。
この画像のような記述を見つけてください。
見つかったら、モザイクがかかっている部分の記述に着目して、この記述が正しいかどうかを確認します。
肝心の照らし合わせる場所ですが、それぞれ以下と照らし合わせてください。
データベース名
サーバーパネルのなかの、『自動インストール』をクリックしてください。(WordPressを自動インストールするときの画面です)
表示されたURL一覧のなかから、今回問題になっているURLを探して、『選択する』をクリックします。
表示されたインストール済みのプログラム一覧のWordPress情報のなかにあるMySQLの欄を見てください。そこに書いてある英数字の文字列がデータベース名です。
ユーザー名
まず、上で確認したデータベース名を覚えておいてください。
サーバーパネルから、『MySQL設定』をクリックしてください。
覚えておいたデータベース名を見つけて、アクセス所有権ユーザーんぼ欄にある英数字の文字列を確認します。これがユーザー名です。
パスワード
データベースのパスワードは原則として、編集しなくて大丈夫です。(というか、してはいけません)
ただし、今回の確認作業をする前にデータベースのパスワードを変更したという場合には、wp-config.phpファイルのなかに記述されているパスワードをコピーして、データベースのパスワードを変更します。
データベースのパスワードの変更方法は以下の通りです。
MySQL設定の画面から、『MySQLユーザ一覧』のタブに切り替え、上で確認したユーザ名を見つけます。見つかったら、行の右側に目を移し、『パスワード変更』をクリックしてください。
wp-config.phpファイルに記述されていたパスワードをコピーして、変更をしてください。
ホスト名
MySQL設定画面の、『MySQL一覧』のタブを選択し、一番下までスクロールしてください。
MySQLの情報が書かれている部分が見つかったら、そこのなかにあるホスト名を参照してください。
これがwp-config.phpと照らし合わせるホスト名です。
wp-config.phpファイルに何の異変もない場合
もし、wp-config.phpファイルを確認しても何も問題が見当たらないという場合には、データベース自体が破損している可能性が考えられます。
この場合は、状況によって行うべき操作も変わってきますので、一概に修復方法を書くことは難しいです。
そのため、ファイルに異変がなかった場合には、サーバのサポートを利用するようにしましょう。
Xサーバの場合には、カスタマーサポートに連絡し、状況を説明して指示を仰いでください。
MySQLのバージョン変更に伴い、wp-config.phpのホスト名に変更があったのが原因
wp-config.phpファイルに異変があって、これを修正することで復旧できた場合であっても、そもそもなぜwp-config.phpファイルに異変が起きたのか?ということが分からなければ、予防方法が分からないので怖いですよね。
ということで、なぜエラーが起きたのか?という根本的な原因を探ってみました。
いろいろ調べてみた結果、結構初歩的なミスをしていたことに気付きます。。。
エックスサーバーではMySQLのバージョン変更(5.0→5.5)が少し前からアナウンスされており、自動で切り替える移行ツールの仕様が推奨されています。
この移行ツールを使った際には、『wp-config.phpファイルのホスト名を書き換えなければいけませんよ』という注意書きを完全に見落としていました。
もっと具体的にいうと、MySQL5.0ではmysql○○.xserver.jpというホスト名だったのが、MySQL5.5では、mysql○○a.xserver.jpというホスト名に変更しなければいけません。
大事なのは、数字の後に続く『a』です。
これにはやられましたね。一見すると全然変わっていないように思えますし。。。
もっと分かりやすいホスト名に変えてくれよ!って思った瞬間でした。まぁ自分が見落としていたのが悪いんですが。。。笑
同じく、MySQL移行ツールを使った後にデータベース接続確立エラーが起きたという方は、ホスト名のaがしっかり入っているかどうかを確認してください。
この場合、9割方ここに問題があると思います。
MySQL5.5移行ツールの利用を開始するを押してから移行の確認をおすまでに編集したものがすべて消えた
ちなみにですが、移行ツールの開始をしてから、なぜか確定を押すのを忘れており、開始を押してから確定を押すまでの間に行った作業がすべて消えるというトラブルも起きました。
もしかしたら、同じくこのようなトラブルに見舞われている人もいるかもしれないので、解決方法を書いておきます。
キャッシュを利用して復元
基本的には、キャッシュを利用して復元することが可能です。
キャッシュされていない場合は不可能ですが、記事を更新するたびにFech as Googleをしているという場合には通常キャッシュされているはずですので、確認してみてください。
キャッシュの確認方法は、Googleで消えてしまった記事のタイトルをそのまま入れて検索するか、URLを検索してみてください。
例えば、当ブログの【完全保存版】amChartsを使ったグラフサンプルまとめという記事のタイトルをGoogleで検索すると、以下のように表示されます。
▼ボタンを押し、『キャッシュ』をクリックすると、検索エンジンがこのページを取得した段階でのページが表示されます。
基本的には、ページを消しても、キャッシュは数週間から数か月残るものですので、記事が消えてしまってからそこまで時間が経っていないのであれば、キャッシュからページを見ることができるはずです。
キャッシュが表示されたら、消えてしまったページと同じものを作ります。
ページ上部に表示されているキャッシュ情報を確認し、URL(パーマリンク)をコピーしてください。コピーしたパーマリンクと同様のページを再度作成します。
後は、ページをコピーして同じ記事を投稿すればOKです。
もし、文字の装飾などをたくさんしていて、装飾ごとコピーしたいという場合には『要素の検証』か、『ソースの表示』を使いましょう。
コピーした部分で、右クリックをし、『ページのソースを表示』か『検証』をクリックします。
ソースが表示されますので、それをコピーすればOKです。
ちなみに、これはWordPressで間違えて投稿や固定ページを消してしまった(ゴミ箱からも削除してしまった)場合などにも使うことができる復旧方法です。
間違って消してしまった場合などに活用してみてください。