WORDPRESS ブログ運営

WordPressでデータベース接続確立エラー・503エラーが頻発したときの対処まとめ


WordPressでデータベース接続確立エラー・503エラーが頻発したときの対処まとめ

前回の記事で、PHPverが古かったり、WordPress Popular PostによるCPU高負荷のためアラートを受けてプログラムの同時実行数制限を受けてしまったため、対策に迫られました。

エックスサーバーから高負荷アラートが来てアクセス制限された話・・500・503エラーの対策は?

エックスサーバーから高負荷アラートが来てアクセス制限された話・・対策は?Content1 エックスサーバーから高負荷アラートが来てアクセス制限された話・・対策は?1.1 エックスサーバーから高負荷アラ ...

そしてエックスサーバーからの助言を元に対策して無事に制限解除となったのもつかの間・・・今度はデータベース接続確立エラーと503エラー(アクセス制限エラー)が頻発するようになってしまいました。

問題が起きるときは連続するというのか、それとも実はエックスサーバーによる裏の制限が強化されたのかはわかりませんが、早急の対策に迫られました。

今回は私が取った対策で有効だったものを紹介します!

管理人
503はわかるけど、データベース接続確立エラーってなんじゃ?

 

データベース接続確立エラーの原因と対処方法

エックスサーバーによるプログラム同時実行数制限が解除されて、一安心していたのですが、翌日再度自身のブログを見ていると、今度は見たことのないエラーが表示されるようになりました。

↑まじでこの画面だからね(笑)

いやだって500エラーとか503エラーは起きたらそりゃあびっくりしますけど、もうちょっとオシャレなエラー画面(笑)に飛ばしてくれるじゃないですか。

でも「データベース接続確立エラー」ってまじでこの画面が表示されるからね・・・

 

ちょっと最初はなにかの手違いかと、意味がわかりませんでした。しかも毎回このエラーになるわけでもなく、2回に1回くらいの頻度でこのエラーになります。

そこで調べてみるとまず考えられる原因として以下のようなものがわかりました。

 

設定ファイル(wp-config.php)のミス:パスワードの不一致

まず最初に疑うべきはWordPressの設定ファイル(wp-config.php)です。

このファイルには、ワードプレスで使用しているデータベースの接続設定が記載されています。接続設定とは使用するデータベース名、ユーザー名、パスワード、ホスト名などです。

自身のブログやサイトで使用しているデータベースと、この接続設定ファイルの内容が異なっていると、当然データベースに接続できずに、「データベース接続確立エラー」となります。

単に500エラー(内部サーバーエラー)と表示されることもあります。

 

よくあるのが、何かの拍子にこのファイルを初期化してしまったり、消してしまった場合、もしくは誤まっていじってしまった場合などが多いようですね。あとはMySQLをバージョンアップした場合などにも起こるようです。

この設定ファイルの内容(特にパスワードやユーザー名)などが異なっていると、絶対にデータベースに接続できないので、百発百中でこのエラーになる場合は、このファイルの設定内容を疑ってください。

ちなみにこのファイルはワードプレスの管理画面からは修正できないので、FTPなどでローカルにダウンロードして修正してから、再度アップしてください。wp-config.phpはワードプレスをインストールしたフォルダ直下にあります。

正しい設定内容は最初にエックスサーバーを導入したときに設定しているはずです。

 

ただ私の場合は、「データベース接続確立エラー」が頻発する(=接続できることもある)ことからこの原因ではありませんでした。このファイルが違う場合は、絶対に接続できないですからね。

データベースへの接続が不安定という人は次の可能性を疑ってください。

 

データベースの再編成・最適化が必要

私の場合は、これが原因でした。

確実にエラーになるのではなく、たまには接続される場合はデータベースの挙動が不安定であることが多いです。

ちなみにワードプレスで記事数が300以上あって、導入以来一度もデータベースの再編成なり最適化なりのクリーニング処理を行っていない人は、データベースの挙動が不安定になってますよ・・・つまり処理が重いです。

システムエンジニアならわかると思うんですが、データベースって適度にクリーニングをしてあげないと、不要な情報をたくさん抱えていたり、保存領域がちらばったりしてしまって効率が悪くなってしまうんです。

そのため記憶領域の統合や、再編成が必要になってきます。まあ要するに最適化が必要なんです。

これをやらないと、どんどん処理が重くなっていき、終いにはデータベースエラーが発生するようになります。

私の場合、エックスサーバーからプログラムの同時実行数制限をされたあとだっただけに、なにか関連があるのかもしれません・・・

管理人
長くブログを運営してるなら、一度データベースを綺麗にしてあげよう!

 

データベースの再編成・最適化は簡単です。プラグインを入れればボタン一つでできます。

有名なプラグインはいくつかあるのですが、私が利用しているのは「WP-DBManager」です。

導入は簡単で、いつもの通りにプラグインの検索からインストール⇒有効化してください。

するとワードプレス管理画面の左側のメニューに「Database」という項目が追加されるので、この中から「Optimize DB」を選択してください。

するとワードプレスで管理してるテーブル一覧(データベースの中の表)が出てきますが、基本的にはすべてが「Yes」になっているデフォルトの状態でOKです。

そのまま下にある「Optimize」ボタンを押してください。

画面上部に緑色のメッセージが出れば完了です。データベースの最適化が成功しています。

データベースの最適化が完了したら、再度自分のブログにアクセスしてみてください。データベースの処理が重くなっていたことが原因だった場合は、エラーが発生しなくなっているはずです。

ちなみにデータベースは月に1回は最適化するといいですよ。

 

503エラーが頻発したときの原因と対処方法

次に503エラーが頻発したときの対処法です。

503エラーは以下の画面が出るヤツですね。

我々システムエンジニアはこの画面見るとほんと胃が痛くなります・・・

 

503エラーの原因

503エラーの原因は一般的に以下が当てはまります。

  1. アクセスが集中している
  2. データ転送量が制限されている
  3. 大量のデータが同時にダウンロードされている
  4. CMSによる一時的な負荷の増大
  5. CGIやPHPなどのプログラムが影響している
  6. サーバーがメンテナンスをしている
  7. 同一IPの他サイトにアクセスが集中している

このうち2や3が原因だった場合、一時的に転送量が契約サーバーのプランの上限値を超えて制限されている場合もありますが、基本的にデータ転送量を抑えるような設定を入れるかサーバーの契約をバージョンアップするしかありません。

私はエックスサーバーのX10プランを使っていますが、もしこれが頻発するようであればX30などへの契約変更を検討します。

また4や5が原因のときはこのページの最初に紹介した同時実行プログラム数の制限を受けたときの対処法を試して見てください。

あと6や7の場合は自身のサイトのせいではないので、どうしようもありませんね。

 

さてここで1や2が原因だったときに、レンタルサーバーの契約内容をバージョンアップする前にできる対策を紹介します。つまり自分のサイトの作りによって、アクセス数増加による制限、つまり現状のサーバースペックの限界を超えないようにする対策です。

 

基本的には以下の方法があります。

①ページの作りを軽くする

②キャッシュを導入する

ほかにも色々とありますが、普通にブログを運営しているだけの人であれば上記の対策だけで十分な効果が見込めます。

まず①は単純で、アクセスが多いページの画像や動画を削除する方法です。

ページに画像や動画があると、当然そのページを開いたときのサーバーと端末のデータ転送量が多くなります。そのため画像や動画が多いと契約している転送量をオーバーしてしまうことがあるのです。

ただこの方法は個別のページを見直さなければいけませんし、一つのページで行っても効果が限定的ですのであまりおすすめできません。明らかに重いページにのみアクセスが集中しているようなときはやってみましょう。

 

おすすめの方法は②のキャッシュを導入する方法です。これはプラグイン一つで導入できます。

キャッシュとは、メモリに保存した画面をユーザーに返すもので、キャッシュに保存されたページ(一度アクセスのあったページ)であれば、サーバーの処理を経由することがないので、高速に表示できますし、サーバーのデータ転送量も極端に抑えることができます。

キャッシュを導入する方法もいろいろありますが、私が導入しているのは「WP Super Cache」です。導入方法は通常通り、プラグインをインストールして有効化後、設定でキャッシング利用のラジオボタンを選択するだけです。

簡単ですよね。

 

キャッシュ利用時の注意

ただしキャッシュ利用には注意があります。

それは以下のような人気のプラグインと相性が悪いことです。

「WordPress Populra Posts」

管理人
みんな大好き人気記事

結構このプラグイン入れて「人気記事」として表示している人いるんじゃないでしょうか?

ただこのプラグインはリアルタイムのアクセス数を計算して、人気記事を表示しているので、キャッシュが無効化される恐れがあるのです。要するにキャッシュというのはそのときのページの断面を保存しておいて、次回アクセスがあったらその断面を返しているので高速なわけです。

しかしWordPress Populra Postsのようにアクセスのたびに計算(サーバー処理)が必要のものは、サーバーに問い合わせに行くので、キャッシュが効きません。そのためこのプラグインを導入していると、キャッシュが機能しないことがあるのです。

ほかにもアクセスの度に動的にページの内容を作り変えているようなプラグインやサイトの作りも同様です。

そのためキャッシュによる高速化、サイトのスリム化を図りたい場合は、思い切ってこういったプラグインの利用をやめることを検討しましょう。

私もブログ開設当時は内部SEO対策のために、人気記事などを表示していましたが、月間PVが80万を越える現在ではほとんど効果がなくなっているため、思い切って停止しました。

人気記事の表示よりもサイトの高速化、503エラーの方が致命的な課題だからです。

 

このブログの場合、対策前はリアルタイムアクセスが200ユーザーくらいを超えると503エラーが発生し始めるのですが、人気記事を廃止して、キャッシュプラグインを導入したらまったく発生しなくなりました。

さらに以前よりもページ読み込み速度が体感でかなり早くなりました。これはキャッシュの影響でしょうね。WordPress Popular Postの廃止は、プログラムの同時実行数を減らしているのでCPU負荷の軽減にもなっていますね。

実際、月間10万PVくらいあるサイトはかなり処理が重くなっている可能性があるので、キャッシュの導入を検討したほうがいいと思います。そのくらいに成長しているサイトならば人気記事なんて必要ないでしょうしね。

 

ぜひ参考にしてみてください!

最後まで読んでいただきありがとうございます!あなたのシェアが記事を書く原動力です!


<スポンサーリンク>

IT虎の穴トップへ戻る

-WORDPRESS, ブログ運営
-

Copyright© IT虎の穴 , 2024 All Rights Reserved Powered by AFFINGER5.