XAMPP環境で WP-DBMANAGERでの復元でDBが壊れる
2017/05/05
WP-DBMANAGERのデータベース復元で不具合が起こった
XAMPP環境で WP-DBMANAGERでのデータベースの復元ができない
ローカルの開発環境として XAMPP環境で WordPressのテスト環境を作っています。
そこで WP-DBMANAGERというデータベースを管理するプラグインを使ってバックアップファイルを作成し、その作成したファイルをもとに WP-DBMANAGERのファイル操作という機能を使って復元を試みたのですが、データベースが壊れて WordPressが動くなるという不具合がありましたので、そのご報告です。
結論、原因は不明。
かつ、WP-DBMANAGERでの復元はできませんでしたので、phpMyAdminを使って復元させる結果となったことを先にお伝えしておきます。
不具合が起こった状況詳細
WordPressのデータを csvファイルをインポートしてデータを追加するという業務がありました。
そのため、その csvインポートを行うための実験として、ローカルの XAMPP環境でまず実験をしようとして実行していました。
環境としては、ローカルの XAMPP環境には phpMyAdminが入っていますが、本番環境のサーバには phpMyAdminが入っていないため、データベースのバックアップ、復元を WP-DBMANAGERを利用して実施する必要があったために、その実験も兼ねていました。
まず、
1.WP-DBMANAGERを使ってデータベースのバックアップ。
2.「csv importer」を使って csvファイルをインポート。
3.phpMyAdminでインポートされたことを確認。
4.インポートの確認ができたので、WP-DBMANAGERを使ってバックアップからデータを復元。
という手順で行いました。
行う予定でした、というべきかもしれませんが、最後の WP-DBMANAGERを使ってデータを復元させる手順のところでエラーが発生しました。
詳細は、WP-DBMANAGERを使っての「ファイル操作」からバックアップされている最新のファイルを選択し「復元」ボタンをクリック。
「’2013年**月**日 @ **:** AM’ のデータベース復元に失敗しました。」
とメッセージが出て、リロードすると
「使用できないテーブルがあります。データベースの修復が必要かもしれません。」
とメッセージが出ます。
そのため、表示にリンクがある「修復」の作業を行ってみても「wp_users テーブルには問題が見つかりませんでした。」と出てくるだけで全く復元はできませんでした。
そして、公開側も管理側も含めて WordPressへのアクセスができなくなりました。
不具合の問題を切り分け原因に迫る
何が問題なのか切り分けるため、WP-DBMANAGERの「復元」で使っていた SQLファイルを phpMyAdminでインポートしてみたところ何の問題もなくインポートされ、元の環境が復元されました。
また、同じファイルを使って、XAMPPではない WordPressのテスト環境で実験をしてみたところ、こちらも問題なく復元されました。
(環境が違いますので、WordPressにアクセスすると変な画面表示にはなりましたが、データベースには問題なくデータは登録されていました。)
さらに、再びローカルの XAMPP環境に戻り検証を続けました。
csvでデータを取り込んだテーブルが「wp-posts」「wp-postmeta」の 2テーブルだったことから、復元に使う SQL文のファイルをこの 2テーブルだけのものに変更し、「復元」を実行してみたところ、エラーなく取り込むことはできたものの、テーブルの中には文字化けした文字列が取り込まれており、表示ももちろん文字化けしていました。
そのため、今度は 2テーブルだけにしたファイルの文字コードを「UTF-8」から「Shift-JIS」に変えて「復元」を実行してみたところ、今度はざっと見た感じでは問題なく取り込めたようでした。
以上のことから、今回の問題は、Windows+XAMPP環境に起因する文字コードに絡む問題が原因で「復元」の処理がうまくいかないのではないか、と考えられます。
ただ最終的な解決には至らず
ただ、今回復元させる 2テーブルだけであれば問題ありませんでしたが、全テールが入ったファイルの文字コードを「UTF-8」から「Shift-JIS」に変更して同じように処理を実行してみたところ、処理はエラーなく終わることはできたものの、正常にデータは取り込めておらず、問題が解決したとは言えない状況でした。
文字コードを変換する際に変更できない文字も入っていることも原因だった可能性もありますが、詳細は不明です。
ファイルをテーブル一つずつに分け、一つずつ復元の確認をしていくことで原因となるテーブルを特定することも可能だとも考えられますが、今回はそこまでの時間を費やすことはできずに詳細な原因追究をすることは断念することにしました。
そのため、この件に関しては詳細な原因は分からず、具体的な解決策は不明です。
ただ、この問題が発生するのは、XAMPP環境に依存する可能性が高いことと、phpMyAdminでテーブル復元を行えばいい、という対処療法的な対応方法は確認できたことで良しとしました。
どなたか、明確な原因がお分かりになる方がいらっしゃいましたら、お教えいただけますと幸いです。
ちなみに、csvファイルをインポートする「csv importer」に関連する記事は、それぞれ下記を参考にしてください。
WordPress csvインポート、エクスポートのプラグイン
Export to Textで WordPressを csv出力
CSV Importerで WordPressにcsvを取込む
WP-DBMANAGERってなに?
必要ないかもしれませんが、WP-DBMANAGERの説明をします。
WP-DBMANAGERは、WordPressのデータベースを操作することができ、自動的にバックアップもとってくっれう便利なプラグインです。
具体的には下記の機能があります。
・データベースの情報一覧表示
・データベースのバックアップ
・ファイルからの SQLの操作
・DBの最適化
・データベースの復元
・テーブル・データの削除(TRUNCATE TABLE、DROP TABLE)
・SQLクリエの実行
詳しくは、下記にも記事を書いていますので参考にしてください。
WordPress データベースを管理するための強い味方のプラグイン WP-DBMANAGER
WordPressのプラグイン WP-DBMANAGERを使って PHP、CakePHP、baserCMSなどで作った Webサービスのデータベースも自動バックアップ
XAMPPってなに?
ついでに、XAMPPに関しても下記に記事を書いていますので参考にしてください。
PHPを勉強するための環境を構築するにはXAMPPが最適
ローカル環境の XAMPPからメールを送信できるように設定する
XAMPPの Apacheが起動しなくなった場合の対処方法
2014.07.03 追記
WP-DBMANAGERは、データベースの管理プラグインですが、バックアップをメインの目的に考える場合は、「BackWPup」というバックアッププラグインとしてはメジャーなプラグインがありますので、そちらも参考にしてみてください。
「BackWPupでWordPressのDBもファイルもバックアップ」にどこよりも詳しく 9記事にわたって書きました。その中には簡単に設定する記事もありますので、参考にしてみてください。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
WordPressプラグインの3つのインストール方法解説
プラグインのインストール方法の特徴とおススメの方法を理由を含めて解説していきます。
-
WordPress 画面が真っ白になる対応の一つ デバッグモード
WordPressで画面が真っ白になる不具合があった場合などのために用意されているデバッグモードの解説です。
-
WordPressのサイドバー(サイドナビ)はウィジェットで編集
サイドバー(サイドナビ)を編集するウィジェットの利用方法の解説です。カテゴリ一覧、アーカイブ、リンク集などを設定する方法を解説しています。
-
WordPressにプラグインを使わず OGP(Open Graph Protocol)の設定方法解説
WordPressに OGP(Open Graph Protocol)をプラグインを使わずに設定する方法の解説。
-
実測比較・レンタルサーバスピード選手権!WordPressが速いのは?
WordPressが一番速く動くレンタルサーバはどれだ!実際にこのエス技研ブログをコピーして8つのサーバを比較。結果はヘテムル、X10、さくらプレミアムが同レベルで優秀。
-
WordPressのサイトマップ生成ツールPS Auto Sitemapの使い方
サイトマップを PS Auto Sitemapで自動生成する方法を説明します。このプラグインは Google用のサイトマップではなく一般ユーザが見るためのサイトマップページを作ります。
-
seesaaからWordPressに引越。インストールなど必要な全てを解説
seesaaブログからWordPressへの引越し解説。他のブログにはないseesaaブログからcanonicalとリダイレクトの設定方法を実装!
-
WordPressの一般設定 投稿設定 表示設定 ディスカッション メディア
基本的な設定を行う「設定」の解説です。ブログサイトを構築する際に必要な設定内容を一般設定、投稿設定、表示設定などの各項目を説明しながら設定内容を提示しています。
-
WordPress投稿テキストを検索・置換するSearch Regexの使い方解説
WordPressの投稿テキストを検索、置換するプラグイン Search Regexの使い方の詳細解説です。
-
BackWPupでバックアップ・エラー発生の具体的対処方法事例6
BackWPupその6。エラーが起こったときの対処方法の具体例紹介です。