ドメインが死んでもデータベースを救い出す方法【Adminer】
こんにちは、ボカロPのgcmstyle(アンメルツP)です。
Webサイト制作に関する仕事に携わっていると、いろいろなトラブルを経験することもあります。
今回はその中から、「ドメインが失効してサイトにアクセスできなくなった」ケースから
データを救い出した方法の忘備録です。
目次
【状況】ドメインが失効し、通常のURLでは入れない
あるWordPressサイトで、以下のような状況が発生しました。
- ドメインが失効しており、通常のURLではサイトにアクセスできない
- レンタルサーバー上にはデータが残っている
- FTP情報だけは把握していた
- しかしデータベースはサーバー内部からしかアクセスできない設定になっていた
WordPressの「中身」(記事、固定ページ、設定、ユーザーなど)はデータベースに保存されています。
FTPでファイルを取り出せても、データベースがなければサイトを復元することはできません。
通常であれば、レンタルサーバーの管理画面(phpMyAdmin)からエクスポートすればいいのですが、
その情報もないので管理画面にもアクセスできない状態です。
解決策の概要
今回はIPアドレスの情報があったので、hostsファイルを設置しAdminerで救い出しました。
「ドメインが死んでいても、こちらのPCだけ”行き先”を強制してサーバーへ到達させ、サーバー上に”臨時のDB管理ツール”を置いてエクスポートする」というやり方ですね。
手順1:サーバーのIPアドレスを特定する
まず、データが残っているサーバーのIPアドレスを調べます。
レンタルサーバーの場合、サーバーパネルの仕様情報に記載されていることが多いですが、
アクセスできない場合、サーバーのホスト名がFTP情報からの推測などでわかっていればnslookup コマンドでIPを割り出せます。
nslookup サーバーのホスト名これで、サーバーのIPアドレス(例:xxx.xxx.xxx.xxx)が得られます。
手順2:PCのhostsファイルを書き換える
次に、自分のPCだけで「このドメインはこのIPへ行く」という設定を行います。
Windowsの場合、以下のファイルを管理者権限で編集します。
C:\Windows\System32\drivers\etc\hostsファイルの末尾に、以下のような行を追加します。
xxx.xxx.xxx.xxx example.com
xxx.xxx.xxx.xxx www.example.com(xxx.xxx.xxx.xxx は手順1で調べたIPアドレス、example.com は失効したドメイン名に置き換えてください)
これにより、外部のDNSを経由せずに、
ブラウザからドメイン名でサーバーへ直接アクセスできるようになります。
※これは自分のPCだけに適用される一時的な設定です。作業完了後は必ず削除してください。
手順3:サーバー上でプログラムが動くことを確認する
実際にデータベースを操作する前に、
FTPでサーバー上に小さなテストファイルを置いて動作確認します。
<?php
// check-xxxxxx.php(ファイル名はランダムな文字列を含めてください)
echo "PHP動作OK - " . date('Y-m-d H:i:s');このファイルをドキュメントルート(public_html など)にアップロードし、
ブラウザから http://example.com/check-xxxxxx.php にアクセスして動作を確認します。
「PHP動作OK」と表示されれば、次のステップへ進めます。
手順4:Adminerを設置してデータベースをエクスポート
データベースを操作するために、Adminerというデータベース管理ツールを使います。
Adminerとは?
Adminerは、PHPファイル1つだけで動作する軽量なデータベース管理ツールです。
phpMyAdminと同様の機能(データの閲覧、エクスポート、インポート等)を持ちながら、
インストール不要で、FTPでアップロードするだけで使えるのが大きな特徴です。
MySQL、PostgreSQL、SQLite、MS SQL、Oracleなどに対応しています。
phpMyAdminが使えない環境や、今回のような緊急時には非常に便利です。
▼ Adminer公式サイト
https://www.adminer.org/
公式サイトから最新版のPHPファイルをダウンロードします。
「Adminer」と「Adminer Editor」がありますが、今回使うのは「Adminer」の方です。
Adminerのセットアップ
ダウンロードしたファイルの名前を、ランダムな文字列を含めたものに変更します。
ファイル名を推測しにくくすることで、第三者に発見されるリスクを軽減できます。
「adminer.php」のような分かりやすい名前のまま置くのは絶対に避けてください。
可能ならば、.htaccessでIPアドレスや認証などのアクセス制限をかけたほうがいいでしょう。
FTPでサーバーのドキュメントルート(public_html など)にアップロードし、
ブラウザから http://example.com/ファイル名.php にアクセスします。
データベースへのログイン
Adminerのログイン画面が表示されたら、以下の情報を入力します。
これらの情報は、WordPressの wp-config.php ファイルに記載されています。
- サーバー:
DB_HOSTの値(今回の場合はlocalhost) - ユーザー名:
DB_USERの値 - パスワード:
DB_PASSWORDの値 - データベース:
DB_NAMEの値
データベースのエクスポート
ログイン後、左メニューの「エクスポート」をクリックします。
出力形式は「SQL」を選択し、テーブルは全て選択した状態で「エクスポート」を実行します。
これで、WordPressのデータベース全体がSQLファイルとしてダウンロードされます。
手順5:必ず後片付けをする
作業が完了したら、必ず以下の後片付けを行ってください。
- Adminerファイルを削除
- テストファイルを削除
- PCのhostsファイルから追加した行を削除
- 取得したSQLファイルを安全な場所に保管
Adminerを放置すると、第三者にデータベースを操作される危険があるため、絶対に削除を忘れないでください。
この方法で救出できたもの
上記の手順により、以下のデータを救出できました。
- WordPressの「中身」(記事、固定ページ、設定、ユーザー等)を含むデータベースのバックアップ(SQL)
- FTP経由で取得したテーマ・画像・プラグイン等のファイル一式(wp-content)
これらがあれば、新しいドメイン・新しいサーバーにWordPressを用意して、
SQLをインポートし、wp-contentを配置すればサイトを復元することができます。
今後のための教訓
このようなトラブルを未然に防ぐために、日頃から以下を意識しておくと良いでしょう。
- ドメインとサーバーの管理情報は、必ず控えておく
- 更新期限のリマインダーを設定しておく
- 定期的にバックアップを取得する習慣をつける
自分で管理している特にWordPressの場合、
バックアップ系のプラグイン(UpdraftPlusなど)を使っておくと、
いざというときにも慌てずに済みます。
おわりに
今回ご紹介した方法は、あくまで他に手段がない緊急時のための対応策です。
通常の状況であれば、サーバー管理画面からのエクスポートが最も安全です。
しかし、Web制作の現場では予期せぬトラブルが起きることがあります。
そんなときにこの方法を知っておくと、いざというときに選択肢が広がるかもしれません。
著者「アンメルツP」について

アンメルツP(gcmstyle / 安溶二)
ボカロP。鏡音リン・レンなどのVOCALOID(広義)を歌わせたオリジナル曲・カバー曲を2008年から作り続けています。代表作にゲーム『プロジェクトセカイ』収録の高難易度曲「人生」、著書に『ボカロビギナーズ!ボカロでDTM入門 第二版』(インプレス)など。
音楽ジャンルに関係なく、キャラクター性を活かしたボカロ曲を制作しています。
楽曲ストリーミング配信、カラオケ配信(JOYSOUND/DAM)多数。
