[WordPress]うっかりデータベースを削除してしまった話

このブログmcity.org はレンタルサーバーのエックスサーバーを利用しているのですが、最近エックスサーバーより、以下のメールが届きました。

平素はエックスサーバーをご利用いただき誠にありがとうございます。

エックスサーバーをご契約中のお客様に最新情報をお届けいたします。

この度エックスサーバーでは、
sv1111~sv1199.xserver.jpサーバーをご利用のお客様を対象に
サーバー性能の大幅向上および基盤システムを刷新した
最新サーバー環境(sv2001.xserver.jp 以降)へ
簡単に移行できる「新サーバー簡単移行」機能の提供を開始いたしました。

古いサーバーシステム環境から新しいサーバーシステム環境への移行ができるようになりました。というお知らせですね。
エックスサーバーを利用しているユーザーさんサイトを見ると、順次新サーバー移行に関する連絡が届いているようで、「新サーバー簡単移行」に関する記事を見かけるようになりました。
私のところにもそのお知らせが届いたので、「新サーバー簡単移行」に関する記事を見ながら移行しようかな…と思っていた矢先、やらかしてしまいました。

このブログのデータベースをうっかり削除してしまったのです!

最近、WordPress のバージョンが4.7.3に上がったのは利用されているユーザーさんならおわかりかと思います。
ダッシュボードの更新画面に「ファイルとデータベースのバックアップをしてください」という文字が表示されていたと思います。
まだアップデートされていなくとも「ファイルとデータベースのバックアップ」は、必ず行うようにしましょう。
何故なら、今回のような大ボケをしてしまう結果を生むことになる可能性があるからです。
結果としてブログにアクセスすると…

データベース接続確立エラー

ドーンっと表示されることになった次第です。
真っ新なデータベースとWordPress 各ファイルとで連携がまるで取れなくなった状況。
どうしたものか…

何故データベースを削除してしまったのか?

仰々しいタイトルを付けましたが、理由はデータベースを3つ作成されていてどれがmcity.org のデータベースかわからなかったからです。
そのうち1つは前のレンタルサーバーのデータから手動で移行した、miroir のデータベース 。
MySQLデータベース名、ユーザIDとパスワードも自己設定。
次の1つは、何のデータベースかどうか不明。MySQLデータベース名はmcity_wp1。
最後の1つも何のデータベースか不明でした。MySQLデータベース名はmcity_wp2。
よく見るとmcity_wp2の横には[*]が付いていて、mcity.org のWordPress バックアッププラグインのWP-DBManager 設定のDatabase>Database 画面からユーザIDとWordPress データベーステーブルの接頭辞の確認を取りました。

使用しているデータベースは2つ。なのにデータベースが3つ存在していたのです。
今思えばこの時、FTPソフトを起動してWordPress の設定ファイルであるwp-config.php を調べるべきでした。
頭にそれが浮かぶことはなかったのです…

それなら使っていないデータベース1つ(2番目)を削除しても問題ないんじゃないか?と思い、削除したら「データベース接続確立エラー」でした…
復帰させてみてわかったことは、2番目と3番目が紐づいていた?らしく、2つ目のデータベースと3つ目のデータベースが共有しているような、よくわからない状態になっていたようです。
念のため、mcity_wp2のパスワードを変更して混乱しないように対応しました。
今のmcity_wp2は過去のmcity.org のデータベースになったわけですが、これを削除していいものか正直わかりません。
mcity_wp2の横にある[*]の意味がわからないので、サポートセンターに確認を取るべきなのでしょうか。

そして再度mcity_wp1のMySQLデータベースを作成し、ユーザIDとパスワードを設定しました。
後は、真っ白なデータベースにmcity.org のデータベースをインポートする作業が必要です。

よく考えてみたら、エックスサーバーの「サーバーパネル」>「MySQL設定」を選び、ユーザIDとパスワードを設定済の「アクセス権所有ユーザ」を「アクセス権未所有ユーザ」から選んで「追加」するだけでphpMyAdmin へのアクセス権は有効になります。
それすらしなかったのは、本当にどれがどのブログのデータベースかがわからなかったからです。

実際に「アクセス権所有ユーザ」を「追加」してみてわかったことは、どれがどのブログのデータベースなのか分かりにくくなりました。
メモ魔な方でなければやはり、1つのブログに1つのphpMyAdmin(MySQL)&ユーザ設定のほうが管理が楽だと感じました。
ユーザIDとパスワードは、以下のやり方でわかるにしてもメモをしておくことをお勧めします。

wp-config.php を見れば一目瞭然。設定を再確認しよう

上でも書きましたが、本当に最初にこれに気づくべきでした。
FTPソフトを使い、WordPress の設定ファイルであるwp-config.php をダウンロードします。
メモ帳以外のソフト(できればコードが書けるアプリケーションソフト)で開きます。

// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'wpdatabase');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'wp_user');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'xxxxxxxxxx');

/** MySQL のホスト名 */
define('DB_HOST', 'mysqlxxxx.xserver.jp');

/** データベースのテーブルを作成する際のデータベースの文字セット */
define('DB_CHARSET', 'utf8');

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');

ここでユーザIDとパスワードがわかります。
変更も行えます(変更した場合は、MySQL設定の変更箇所も変更(合わせる)必要があります)。
何故ここを調べなかったのか!…とても反省しています。
ちなみに、WordPress データベーステーブルの接頭辞も設定ファイルなので確認・変更できます。

/**
* WordPress データベーステーブルの接頭辞
*
* それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
* インストールすることができます。半角英数字と下線のみを使用してください。
*/
$table_prefix = 'wp1_';

再三書いてますがこの場所を、mcity.orgmiroir それぞれのwp-config.php で確認すれば良かったのです。
本当に焦ると何をしだすかわからない人間で、社会に出ていてこの状態だと正直ダメ人間としてレッテルを貼られること間違いなし。
…実際そうでしたから仕方ありません(遠い目)。

今回ユーザIDとパスワードを変更したので、wp-config.php をFTPで再アップロードしました。
ユーザIDとパスワードを手に入れたら、phpMyAdmin にアクセス準備完了。
後は「データベース接続確立エラー」を解消するための作業を行います。

データベースを元に戻すにはバックアップのデータベースを利用する

真っ白になってしまったサーバー内のデータベースを戻す一番の方法は、WP-DBManager 等のバックアッププラグインをインストールしてバックアップしていれば、その最新ファイルを「インポート」して書き戻すことです。
自分の環境では、WP-DBManagerBackWPup の2種類のプラグインを導入し、WP-DBManager ではデータベースのバックアップをFTPへ、BackWPup ではそれ以外のファイル、XML エクスポートファイル、プラグインファイル、DBファイルをDropbox へバックアップするようにセッティングしています。

FTPソフトを使い、該当フォルダへ移動します。
ここではエックスサーバーでの設定内容になります。
他のレンタルサーバーの場合は、「Database」>「DB Options」へ移動すると、「Path To Backup」にバックアップ先アドレスが記載されています。もちろん、バックアップ先アドレスの編集もできます。

/home/ユーザ名/独自ドメイン名あるいはユーザー名+サーバー名/public_html/wp-content/backup-db

最新のSQLファイルをダウンロードします。
レンタルサーバーの「サーバーパネル」からサーバーID(ユーザーID)とパスワードを入力してログインします。
「データベース」の「phpmyadmin(MySQL5.5)」をクリックします。
phpMyAdmin メインページの「インポート」をクリックします。
「インポートするファイル」の「テキストファイルの位置」の横にある「ファイルを選択」ボタンをクリック。
インポート(読み込み)するSQLファイルを選択します。
画面右下にある「実行する」ボタンを押します。

注意点
SQLファイル内のデータベース名と、サーバーパネル内のMySQLデータベース名を同じにしておかないとエラーになります。

インポートが無事成功したら、データベースのテーブルが表示されます。
これで再びブログをアクセスしてみましょう。
問題なければ表示されていると思います。
今表示されて、記事を書いています。
きちんと表示されているでしょうか?

スポンサーリンク
スポンサードリンク
スポンサードリンク

シェアする

フォローする

スポンサーリンク
スポンサードリンク