WordPressの管理画面にログインできない
目次
現象
WordPressの管理画面で、ユーザー名とパスワードを入力して「ログイン」をクリックしても、また同じ画面に戻ってしまう。
パスワードを間違えたときなどに表示されるエラー表示のメッセージは表示されない。
ちなみにパスワードを間違えたか、何かの原因で変わってしまったのかと思って、ログインボタン下の「パスワードをお忘れですか」をクリックし、受け取った再発行のメールから、再発行しようとしたら、「パスワードリセット用リンクが無効のようです。以下から新しいリンクをリクエストしてください。」との表示が出てパスワードのリセットができなかった。
原因
レンタルサーバーで標準についているデータベースを利用していましたが、『データベースの容量が超過致しますと、データの追加や変更等が行えなくなります。』ということで、容量を超えるとデータベースが使えなくなり、使えなくなった場合に、このような現象になったようです。
急にログインできなくなるだけで、わかりませんよね。
WordPressでは「リビジョン」と言って以前の投稿内容を自動的に保存しておいてくれる機能があります。入力した投稿だけではデータベースを圧迫することがなくても、このリビジョンのせいで容量が大幅に多くなるようです。
調べた内容
- エラーログはやたらと長いSQL分が表示。
INSERT,UPDATE command・・・ということだったので、Insertできなかった内容が表示されていたのかもしれません。 - phpMyAdminでは特に問題なし。
- 最終的にレンタルサーバーの管理画面で書かれている容量が規定容量を超えていました。
解決策
phpMyAdminで不要な古いリビジョンのものだけを削除するのも少し怖かったので
今回はオプションで容量の大きなデータベースに切り替えることにしました。
phpMyAdminが使えたので、今まで使っていたデータベースをデータベースごとエクスポートし、新しく契約したデータベースにインポートしました。
その後、wp-config.php のデータベース情報を変更してすぐにログインもできるようになりました。
追記:データベースのコピー
今回は、容量が大きくなってしまったためデータベースを変更しようとしていましたので、なぜかエクスポートは問題なくできたのですが、インポートでコピー途中にエラーとなってしまいました。
テーブル単位で行っても、wp-posts がほとんどの容量を使っていたためこのテーブルがインポートできません。
テーブルのエクスポート時には、何行目から何行をエクスポートするかを指定できるので、それを使って少しずつ移すしかないようです。
追記:リビジョンについて
今回は客先のWordpressだったので、危ない橋は渡りたくなかったのですが、実際には wp-posts テーブルの post_status が inherit のものがリビジョンとしてとってあるもののようで、それを消せば不要なリビジョンが消えたようです。
ただ、自分のところで簡単なテストをしただけなので確かではありません。
ログインできる環境であれば、リビジョンを管理してくれるプラグインをインストールしたり
wp-config.php に保存したいリビジョン数を設定しておくことができるようです。