ドメインの更新を忘れてwordpressにログインできなくなった時に、データベースのURLを修正してログインする方法をご紹介します。
ドメインの更新を忘れると、ホームページが表示されず、WordPressの管理画面にもログインできなくなるので、早急にドメインの更新か再取得が必要になります。
とりあえずWordPressにログインできるようにするため、phpMyAdminを使ってデータベースに登録されたURLを修正して、応急処置を施しました。この方法ならドメインの再取得が難しい場合でも、サイトのデータをバックアップするなどの対処ができます。
最近はドメイン更新を忘れると、再取得のために高い手数料を取られることがあります。皆さん、ドメインの更新はお忘れなく。
※ WordPressデータベースの更新は上級者向けの作業です。失敗するとサイトが表示されなくなるので、データベースの修正作業は慎重に行ってください。
WordPress ドメインが失効するとログインできない
先日、管理先のホームページが突然見られなくなってしまいました。原因はドメイン更新を忘れてドメインが失効したみたいです。
サーバに割り当てられた初期ドメインが使えず、wordpressにログインすることもできないので、データベース内のURLを修正して応急処置を施しました。
wordpressが使えるサーバなら、大抵はコントロールパネルからphpMyAdminのようなデータベース管理ツールにログインできるはずです。
そこから wordpressデータベース内の情報を、失効したドメインからサーバの初期ドメインに変更して、wordpressにログインできるようにします。例はこんな感じですね。
失効ドメイン : http://test.com/
初期ドメイン : http://test.sakura.ne.jp/
なお、今回はさくらインターネットのサーバを例に解説します。他のサーバをお使いの方は、適宜読み替えてくださいね。
あと、データベースを修正する時は、念のためにバックアップを取りましょう。記事内でデータベースのエクスポート方法も解説しています。
wordpress データベースの修正
WordPressのURL情報はデータベースに登録されているので、サーバーのコントロールパネルからデータベース管理ツールを使って修正します。
サーバコントロールパネルにログイン
データベース管理ツールは、サーバコントロールパネルからアクセスします。
左メニュー「アプリケーションの設定」から「データベースの設定」に進みます。
データベース一覧が表示されるので、「管理ツールログイン」をクリック。
phpMyAdminにログイン
MySQLデータベースの管理ツール、phpMyAdminにログインします。phpMyAdminはブラウザからMySQLデータベースの作成や変更を行うことができます。
phpMyAdminにログインすると、左メニューには「information_schema」の他に「サイトのデータベース名」が表示されているはずです。
「サイトのデータベース名」を選択してクリックします。サーバにwordpressを複数インストールしている場合は、該当するデータベースを選んでください。
データベースのテーブル一覧が表示されました。念のため、まず最初にデータベースをバックアップしておきましょう。上の「エクスポート」をクリックします。
エクスポートの設定はデフォルトのままでOKです。あとは「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT を追加」をチェックします。
右下の「実行する」でデータベースがエクスポートされます。
エクスポートが終了したら、上部の「SQL」をクリックします。
SQLコマンドを実行
下記のSQLコマンドを実行して、データベース内のURLを書き換えます。
URLの例に挙げた http://test.com/ と http://test.sakura.ne.jp/ は自分のサイトに合わせて変更してくださいね。
UPDATE wp_options SET option_value=REPLACE(option_value,"http://test.com/","http://test.sakura.ne.jp/"); UPDATE wp_posts SET post_content=REPLACE(post_content,"http://test.com/","http://test.sakura.ne.jp/"); UPDATE wp_posts SET guid=REPLACE(guid,"http://test.com/","http://test.sakura.ne.jp/"); UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,"http://test.com/","http://test.sakura.ne.jp/");
SQLコマンドは、こちらのサイトを参考にさせていただきました。
「SQL は正常に実行されました」というメッセージが表示されたら成功です。
これでとりあえずはwordpressにログインできるようになりました。ドメインが復活したら、再度データベースを修正して、元のURLに戻してください。
なお、ログイン時のURLは初期アドレスに変更となります。ブックマークなどからログインする場合は注意してください。
変更前: http://test.com/wp-login.php
変更後: http://test.sakura.ne.jp/wp-login.php
wordpress マルチサイトの場合
wordpressがマルチサイトの場合は修正するテーブルが増えるので、SQLコマンドのテーブル名を変更して、修正するテーブルを増やしてください。
あと、wp-config.phpも修正する必要があります。「データベース接続確立エラー」が表示された場合は、wp-config.php内を下記の通り修正してください。
修正前: define(‘DOMAIN_CURRENT_SITE’, ‘test.com’);
修正後: define(‘DOMAIN_CURRENT_SITE’, ‘test.sakura.ne.jp’);
wordpress データベース修正用PHPスクリプト
今回はSQLコマンドを使ってデータベース内のURLを修正しましたが、PHPスクリプトを使うという手もあります。
wordpressのデータにはシリアライズされたものが含まれていて、SQLコマンドではきちんと修正されない場合があります。
今回は応急処置なので、とりあえずwordpressにログインできればよかったのですが、本格的なサーバー移行やサイト引っ越しなどの場合は、データベースに不具合が発生して、サイトを元通りに復元できない場合があります。
でも、「SEARCH REPLACE DB」というPHPスクリプトを使うと、シリアライズされたデータも含めて、データベースのレコードから特定の文字列を一気に変更することができます。
少し手間はかかりますが、データベースの修正はこちらを使った方が確実かもしれませんね。
PHPスクリプト「SEARCH REPLACE DB」の使い方は、以下を参照してください。