XAMPP環境で WP-DBMANAGERでの復元でDBが壊れる
2018/03/03
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記事にわたって書きました。その中には簡単に設定する記事もありますので、参考にしてみてください。
XAMPPの関連記事
WindowsのXAMPPのPHPではstrptimeは使用不可。代替はdate_parse_from_formatを使うXAMPP本体や PHPのバージョンアップをせずにもう一つXAMPPをインストールして複数の環境を共存させる方法
XAMPPとは?パソコンにローカル LAMP環境を簡単に設置する方法を詳細解説
XAMPPにVirtualHostを設定しドメイン、ドキュメントルートを設置する方法
XAMPPのApacheが起動しない!ポート番号の変更でバッティングの解消方法
MySQLのタイムゾーン(mysql_tzinfo_to_sql)の設定方法・XAMPP環境の解説も
XAMPPのWordPressの更新でFatal error: Maximum execution time of 30 seconds exceededのエラーが発生して失敗する場合の対処方法
XAMPP環境で WP-DBMANAGERでの復元でDBが壊れる
XAMPPの Apacheが起動しなくなった場合の対処方法
XAMPP環境(ローカル環境)の sendmailからPHPメールを送信する設定方法
その他の「xampp」に関する記事一覧
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
WordPressのPing・更新情報サービス設定方法とPingサーバ
WordPressのPing機能、更新情報サービスの設定方法の解説と Pingサーバのリストを提供しています。
-
-
WordPress 画面が真っ白になる不具合があった場合の対応の一つ
WordPressで画面が真っ白になる不具合があった場合の対応方法の説明です。PHPでエラーが起こっている場合がほとんどですがその対処方法です。
-
-
BackWPupでバックアップ・Jobの設定・保存先の情報設定
BackWPupその3。Jobのバックアップファイルの保存先の設定についての解説。
-
-
WordPressは危険?最新バージョンにアップデートして利用しよう
WordPress最新バージョン使ってますか?WordPressのバージョンアップをしないリスクを説明し、バージョンアップの手順、バックアップの重要性を解説しています。
-
-
Basic認証をファイル単位・URL単位で設定する方法の解説
Basic認証はフォルダ単位だけでなくファイル単位での設定もできるためログイン画面だけにBasic認証を設定することもできます。その解説です。
-
-
WordPressで WPtouchを入れてモバイルテーマを「OFF」にしたら元に戻れなくなった
WPtouchを入れてモバイルテーマを「OFF」にしたら元に戻れなくなった。これは「wp_footer」の設定に問題があるからだった。
-
-
Autoptimizeで簡単設定!HTML、JS、cssを圧縮しWordPress高速化!
Autoptimizeを使って簡単にHTML、JavaScript、CSSを圧縮しサイトの表示を高速化しよう!基本設定、拡張設定とあり柔軟な設定で多彩な環境に対応出来ます。
-
-
Google Code Prettifyの設定方法を解説。 Syntax Highlighterから乗換え、高速化にも最適
Google Code Prettifyでソースコードをきれいに編集する方法の解説。簡単設置とカスタマイズ設置の2つの方法を解説し、カスタマイズするポイントも解説。
-
-
WordPress記事のまとめ一覧・インストール、プラグイン、カスタマイズの記事
WordPress記事のまとめ。WordPressの記事が多くなってきたので記事の説明を追加した一覧記事を作成しました。各設定から機能のカスタマイズ、運用ノウハウまで参考に!
-
-
Comment Rating FieldでWordPressのコメントに口コミサイト機能を追加
口コミサイトを構築するためのプラグイン。評価点を投票する仕組みをコメント投稿機能に追加する方法で実現。口コミサイトを構築するには十分な機能を提供。