データベースエラーが出てました…

それは3日前のこと。このブログへ新しく投稿しようとアクセスしたところ、データベースエラーとして503エラーを吐いてくださいました。

最初はサーバーの問題ですぐに復旧するだろう…と思っていたのですが、なかなか復旧する様子が見られず。で、当サーバーと同じサーバーを使っているサイトはどうなんだろうとアクセスしてみると正常に表示される…。

じゃぁWordPressのデータベースがまずいのかなぁ…と管理画面へ。管理画面は問題なくアクセスできました。さらにWordPressのデータベースが収まっているMySQLを操作するためphpMyAdminにアクセスしてみると…。

#1203 – User xxxx already has more than ‘max_user_connections’ active connections

としてデータベースにアクセスできない状態だということを確認。データベースをいじろうにもphpMyAdminにログインしなければにっちもさっちもいかない訳で…。

で、できることはただ1つ。このエラーでグーグル先生に質問すること。そのお答えとしては、どうやらアクセス過多でエラーを起こしているとのこと。そこでまずはサイトへのアクセスを自分のIPからのみになるよう .htaccess を変更。

order deny,allow
deny from all

# 自分のIPのみを許可する
allow from ***.***.***.**

これでphpMyAdminにログインできるようにはなりました。…が、実は前回した操作というのがWordPressのアップデート。そこからはプラグインも追加していないので何が原因かさっぱり。

そこで同じ様なエラーで困っていた人がいないかグーグル先生に再度質問。するとデータベースの最適化で復旧するしている人を多数発見。phpMyAdminにアクセスできないからとコマンドで最適化されていた方もいたものの、さすがにそれは難しそうだったし、すでにphpMyAdminにはアクセスできるようになっていたのでphpMyAdminを使って最適化する方法を探しました。

…と何のことはなく、WordPressのデータベーステーブルのうちオーバーヘッドが生じているテーブルを選択して、テーブルが表示されている下にあるプルダウンメニューからテーブルを最適化するを選択するだけ。これでこのサイトの表示が戻ってきました。

この後、本来ならテーブルの修復を実施しないといけないようなんですが、どこが怪しいのか…といったところ。とりあえず怪しそうなのを適当に修復をかけておきました。

こうして今のところ、とりあえずは表示されている模様。グーグル先生と先達の方たちに多謝です 🙂

なお、参考にさせていただいたのは次のサイトです。本当にありがとうございます。

.htaccess によるアクセス制限について
こんなでいいのか?という復帰方法 – MMRT daily life
データベース修復について
pc.casey.jp ? coreserver データベース接続が壊れた!
DB不調でアクセス出来ず | Way2Go
phpMyAdminによるデータベースの最適化について
phpMyAdmin から MySQL の最適化 〜WordPressを快適に使うために〜:トイレのうず/ぼやき

「データベースエラーが出てました…」への5件のフィードバック

  1. 同じ症状が出て困っています
    .htaccessもしたのですが、2時間ほど経っても未だにログインできません
    参考までに、どの程度時間を置けばログインできるようになったか教えていただけないでしょうか。

    1. コメントありがとうございます。

      2時間ほど経ってもログインできないとことですが、どこへのログインを指していますでしょうか?
      ちなみにWordPressの管理画面へは.htaccessの変更なくログイン画面からのログインは可能でした。
      またphpMyAdminは.htaccessの変更後はさほど時間をおくことなくアクセス可能になります。
      待機時間は計ってなかったので具体的には分かりませんが、30分も待たなかったかと思います。

      記載内容について気になるのは.htaccessの変更内容のうち、IPアドレスの指定する箇所でしょうか。
      上の記事の中では「***.***.***.**」で記載していますが、実際はご自身のIPアドレスを記入する必要があります。
      また、使用しているサーバーがレンタルサーバーなどの外部サーバーの場合、
      記入すべきIPアドレスはグローバルIPアドレスという、
      インターネット上でご自身のパソコンに割り振られたIPアドレスを入力する必要があります。
      (要するに家庭内ネットワークで使用しているIPアドレスは使えないということです)
      ご自身のパソコンに割り振られたグローバルIPアドレスの確認は
      「グローバルIPアドレス 確認」などで検索されると確認できるサイトが見つかるかと思います。

      解決への糸口になる情報だと良いのですが……。

  2. お返事ありがとうございます。
    phpMyAdminへのログインです。
    IPアドレスの部分も理解できます。
    私だけが.htaccessでサイトへのアクセス権限が与えられるという事ですよね。
    試しにデタラメなアドレスを入力すれば、forbiddenで弾かれたので、その部分は大丈夫だと思います。
    そしてその後サイトの方を確認しても、未だに”already has more than ‘max_user_connections’ active connections in?”というエラーが表示されているので
    エラー自体が解消されていないという事だと思います。
    もう少し放置して様子を見てみますが、このままずっとエラーが出て直らなかったらどうしようかと思って不安です。
    phpやMySqlについてもあまり知識がないため、デフォルトで使っておりました。
    ログインができるようになれば、色々弄ってみて出来る範囲で最適化を試みたいと思ってます。

    1. 早速の返信ありがとうございます。

      .htaccessの変更に関する内容は認識の通りで問題ないと思います。
      ただ、問題になっているサイトが普段どれだけのアクセス数があるかによって
      アクセス過多の状態がいつ解消されるかは分かりません…。
      ネットで検索したところ、最悪の場合、数日待つ必要があるかもしれないみたいです。

      お力になれず申し訳ありません…。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です