データベース接続確立エラーがでていた古いワードプレスをレスキューできるかどうか試してみました

この記事は約4分で読めます。

データベース接続確立エラーワードプレス(WordPress)で構築されたWEBサイトが「データベース接続確立エラー」と表示されてまったく表示できなくなっていました。このサイトをなんとかレスキューできないかといろいろ試した結果、無事に表示させることができました。
備忘録として残しておきます。

データベース接続確立エラー

原因はwp-config.phpかMySQLの情報間違い

表示されているエラーメッセージは以下のとおりでした。

これは、wp-config.php ファイルのユーザー名とパスワードが正しくないか、あるいは mysql300.db.sakura.ne.jp のデータベースサーバーに接続できないかのどちらかを意味します。ホスティングサービスのデータベースサーバーがダウンしているかもしれません。

・ユーザー名とパスワードに間違いはありませんか ?
・正しいホスト名を入力しましたか ?
・データベースサーバーは動作中ですか ?

こうした用語が何を意味しているのか分からない場合は、ホスティングサービスに連絡するべきでしょう。助けが必要であればいつでも WordPress サポートフォーラムを訪れることができます。

この内容には思い当たるところがいくつかあります。

というのは、このサイトは
・さくらインターネットで10年以上運用している
・最後の更新から5年以上経過している
ということなので、
・MySQLが強制的に5.7にアップデートされている(だろう)
ということが想定できます。

詳しくは

MySQL5.5はサポート期限切れなのですみやかにバージョン5.7にアップデートしましょう
2018年末でMySQL5.5はサポート期限が終了しています。しかし、まだ多数のワードプレス(WordPress)では期限切れのMySQL5.5が使われています。サポートが切れているということは新たなリスクが発見されても改善されないのでセキュリティ的にとても心配な状況です。 そこで、まだ古いMySQLをお使いの場合は、最新のMySQL5.7にアップデートしましょう。さくらインターネットを使っている...

にて紹介しています。

対策はwp-config.phpの内容を修正すること

ということで「wp-config.php」を編集しました。

修正箇所は、MySQL のホスト名です。さくらインターネットのMySQL自動アップデートの際に、データベースがMySQL5.7にアップデートされており、そのさいにホスト名が変更されています。

mysql57.******.sakura.ne.jp

という名称です。
「******」のところは自分が利用しているサブドメイン名が入ります。

ですから

/** MySQL のホスト名 */
define(‘DB_HOST’, ‘mysql57.******.sakura.ne.jp’);

という修正になります。

条件によりますが、データベース接続のパスワードは変わらないはずです。

ドメイン変更でログインURLがなくなっている

もうひとつ問題がありました。

このサイトが古いこともあり、管理者がこのサイトの存在を忘れていてこのサイトのドメインを消失していました。

というわけでログインURLがなくなっています。

この場合も「wp-config.php」を編集すれば解決できます。

以前、マメジンというサイトでログインURLを強制的に変更した例を紹介しています。

ワードプレスのシステムファイルがあるパスが
https://*******.com/wpnew
だとしたら

define( ‘WP_HOME’, ‘https://*******.com/wpnew’ );
define( ‘WP_SITEURL’, ‘https://*******.com/wpnew’ );

という2行を追記すればOKです。

ワードプレスのURL設定をあとから変更したい場合は、wp-config.phpファイルを編集する
ワードプレス(WordPress)の初期設定でURLを間違えてしまい、ログインできなくなってしまったということがあります。その場合は、ワードプレスのURL設定をwp-config.phpファイルを編集することで変更することが可能です。 その方法について紹介します。FTPソフトとテキストエディタが必要ですが、レンタルサーバーによってはWEB管理画面からファイルマネージャーで操作することもできます。

の場合は以下のような修正をしています。

define( ‘WP_HOME’, ‘https://www.mamejin.com’ );
define( ‘WP_SITEURL’, ‘https://www.mamejin.com’ );

これでばっちり接続できました。

なお、ワードプレスのシステムURLと、公開表示するURLが違う場合はこの部分の記述が少し変わります。

define( ‘WP_HOME’, ‘https://www.mamejin.com/wp’ );
define( ‘WP_SITEURL’, ‘https://www.mamejin.com’ );

ワードプレスのシステムが入っているURLが「/wp」で公開するURLが「/」だと上記のようになります。

レスキューしたあとサーバー移転しました

というわけで、今回は「データベース接続確立エラー」になって表示できなくなっていたワードプレスをレスキューした事例でした。

ちなみに、このサイトはさくらインターネットからエックスサーバーに移転しました。そのさいに「All-in-One WP Migration」を使用しました。この引越プラグインは強力です。PHPやMySQLのバージョンが違っても、最新環境のサーバーにデータをまるごと移転できちゃいます。

WordPressをサーバー移転するためにの便利なバックアップ用プラグインには「All-in-One WP Migration」がおすすめです
WordPressのサーバー移転を簡単に行うためのプラグインを調べています。 エックスサーバーでは「WordPress簡単移行」というメニューがあり、実際に使ってみたら驚くほど簡単に移転できました。後で確認すると、移転元にも移転先にもWordPressには「Xserver Migrator」というプラグインが入っていて、このプラグインがエックスサーバー専用のサーバー移転プラグインとして機能していま...

を参考にしてください。