サポート » インストール » MEからWordPress 3.1環境でデータ復元

  • WordPressフォーラムでご活躍されている皆様。
    お疲れ様でございます。
    いつもWordPress様には御世話になっており、ありがとうございます。

    このたび会社で運営していたブログをWordPress(Me)から、WordPress3.1へ移行する運びとなりました。
    Mebの管理画面でバックアップしたxmlファイルを新しい3.0のWordPressにインポートしたところ、全データの一部しか復元できていないということが判明致しました。
    昨年度分の記事が復元できておりません。
    既にMeのFTP上のファイルは削除されておりますので、管理画面上からxml形式で再度エクスポートすることができません。

    そのため、
    http://wpdocs.sourceforge.jp/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E5%BE%A9%E5%85%83

    http://wpdocs.sourceforge.jp/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97
    の手順に沿って、残っているMeのデータベース上のファイルから記事の復元をと試みているところでございます。

    Meのほうから、SQL形式でエクスポートをして、新しいWordPressのほうにインポートすると、「インポートは正常終了しました。279 個のクエリを実行しました」と表示されますが、実際には空のデータして認識されてしまいます。
    MySQLの表示をクリックしても、返り値が空でした(行数0) と表示されています。
    CSVデータにてエクスポート→インポートしますと文字化けしましたので、enEditorを使ってエクスポートしたCSVをUTF8形式に変換しBOM無しで保存。コチラの方法でインポートしてみましたがやはり文字化けが解消されませんでした。

    会社で使用しているサーバーは自社管理のサーバーでございます。
    データベースは、複数あるWordPressや他のCMSを接頭語をかえて1つのデータベースにまとめて入れてある状況です。
    Meの接頭語は、blog
    新しく入れたWordPressは、2001_blog
    となっております。

    またPHPのバージョンは、PHP Version 4.4.9。

    Meのバックアップをどのようにとったのか、担当者が異なるため、詳細が不明でございます。
    またMeのバージョンも、すでにFTP上のデータが抹消されているため確認することができません。

    このような場合、どのようにして、以前の記事を復元したらよろしいでしょうか。
    いろいろと情報が不足しており、たいへん申し訳ございません。
    なにか解決策がありましたら、ご伝授くださいますよう御願い申し上げます。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • 補足でございます。
    文字化けしている状態ではありますが、WordPressのWEBページを見てみましたところ、データベース上でインポートできているはずの情報が反映されておりませんでした。

    データベースにて復元した記事をWEBサイト上でも反映させるために、なにか他の作業が必要となりますでしょうか。

    いろいろと検索してみましたが、データベースの復元後の作業等について解説されているサイト様が見つかりません。
    この情報についても解決策がありましたら、ご伝授頂けますと幸いでございます。
    よろしくお願い申し上げます。

    いろいろ試しているものの、現在もまだ解決できておりません。
    どなたかお助け頂けませんでしょうか。

    PHP Version 4.4.9
    phpMyAdmin – 2.11.9.3
    MySQL クライアントのバージョン: 5.0.67
    使用中の PHP 拡張: mysql

    上記も補足事項となります。
    よろしくお願い致します。

    モデレーター Seisuke Kuraishi (tenpura)

    (@tenpura)

    • 現在 Me は正常に動いていますか?
    • Me で使っている MySQL サーバーのバージョンは何ですか?
    • Me の文字コードは何ですか?
    • WordPress 3.1 で利用する MySQL サーバーのバージョンは何ですか?

    おはようございます。
    さっそくのレスポンスありがとうございます。

    上記の説明にもございますように、すでにMeはFTP上から削除されております。
    可動はしておりません。

    また、こちらも上記説明の通り、1つのデータベースに複数の接頭語を使い分けて、CMSを複数入れております。

    Meもデータも、WordPress3.1のデータも、同じデータベース内にございます。

    上記情報と同じとなります。

    > PHP Version 4.4.9
    > phpMyAdmin – 2.11.9.3
    > MySQL クライアントのバージョン: 5.0.67
    > 使用中の PHP 拡張: mysql

    Meの文字コードでございますが、通常のデータベースのエクスポート時に文字化けしておりましたので、恐らくEUC-JPだと思われます。
    よろしくお願い致します。

    モデレーター Seisuke Kuraishi (tenpura)

    (@tenpura)

    > MySQL クライアントのバージョン: 5.0.67

    クライアントではなくサーバーのバージョンを書いてください。

    上記の説明にもございますように、すでにMeはFTP上から削除されております。
    可動はしておりません。

    現在の MySQL サーバー上で Me が正しく動いていた確証はありますか?
    Me の wp-config.php もしくはそこに記述されていた接続情報は保存してあるのでしょうか?

    以下を教えてください。

    • phpMyAdmin でエクスポートしたデータをテキストエディタで開いて文字化けなく読めるか?また読めるならその文字コードは何か?
    • エクスポートしたデータの中に latin1 もしくは utf8 という文字列はあるか?あればその前後の文字も書いてください。(例: CHARSET=latin1)

    Kuraishi様、ありがとうございます。
    サーバー担当者に問い合わせたところ、
    サーバーのバージョンも、MySQL クライアントのバージョン: 5.0.67と同様で
    > バージョン: 5.0.67
    との回答がございました。

    こちらで確認できるものを別途補足致します。
    > localhost
    > サーバのバージョン: 5.0.67-log
    > プロトコルバージョン: 10
    > サーバ: Localhost via UNIX socket
    > phpMyAdmin – 2.11.9.3
    > 言語 日本語

    Meだった時、WordPressは本体もプラグインも含め、正常に稼働していたとのことでございます。
    バックアップファイルをxml形式で管理画面から落とした際も、エラーなく落とせたとのことでございます。
    Meを削除する前のバックアップデータは保管されておりました。
    中身を確認しましたところ

    > <?php
    > mb_language(‘Japanese’);
    > mb_internal_encoding(‘UTF-8’);
    > // ** MySQL settings ** //
    > define(‘DB_NAME’, ‘wordpress’); // The name of the database
    > define(‘DB_USER’, ‘wordpress’); // Your MySQL username
    > define(‘DB_PASSWORD’, ‘***********’); // …and password
    > define(‘DB_HOST’, ‘*************’); // 99% chance you won’t need to change this value
    > define(‘DB_CHARSET’, ‘utf8’);
    > define(‘DB_COLLATE’, ”);
    > ~~ 省略 ~~
    > require_once(ABSPATH.’wp-settings.php’);
    > ?>

    と書かれておりました。
    2008年に保管されていたバックアップとのことです。
    ファイルを見るとUTF-8になっています。このあたりに原因があるのかもしれません。
    *PASSとHOSTは伏せ字にします

    外注で新しいブログ設置を依頼されておりますため、曖昧な回答になり申し訳ございません。

    > ■phpMyAdmin でエクスポートしたデータをテキストエディタで開いて文字化けなく読めるか?また読めるならその文字コードは何か?
    上記確認しましたところ、文字化けなく読めるコードはEUC-JPでした。
    > ■エクスポートしたデータの中に latin1 もしくは utf8 という文字列はあるか?あればその前後の文字も書いてください。(例: CHARSET=latin1)
    エクスポートしたデータの中に、
    /*!40101 SET NAMES utf8 */;
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=294 ;
    こういった記述がございました。
    UTF-8と書かれておりますが、エンコーディングをUTF-8にすると文字化けしてしまいます。EUC-JPで開くと文字化けなく読めます。

    モデレーター Seisuke Kuraishi (tenpura)

    (@tenpura)

    以下試して結果を教えてください。

    1. phpMyAdmin でエクスポートした Me のデータをテキストエディタで EUC-JP から UTF-8 に変換して読める状態で保存する。
    2. phpMyAdmin で空の新規データベース(照合順序: utf8_general_ci)を作成する。
    3. 2で作成したデータベースに1のデータをインポートする。
    4. phpMyAdmin 内の表示でインポートされたデータの日本語が読めるか、構造で varchar、text フィールドの照合順序が utf8_general_ci になっているか確認する。

    Kuraishi様
    ありがとうございます。
    対応が遅くなりまして申し訳ございません。

    上記のことを試そうとしたところ、

    新規データベースを作成する:
    特権なし

    となっておりました。サーバー管理者だけが操作することができるようです。
    こちらで新規にデータベースを作れないような仕様になっておりましたうえ、上記のことを試すことができませんでした。

    モデレーター Seisuke Kuraishi (tenpura)

    (@tenpura)

    新しく入れたWordPressは、2001_blog

    こちらが運用前で空にしても問題ないのであればこちらで試してみてください。

    それが無理な場合は XAMPP などのローカル環境で行ってはいかがでしょう?
    この作業は本番環境で行う必要はありません。

    Kuraishi様
    ありがとうございます。
    上記のことを、XAMMPを使って検証致しました。

    Meのデータベースから落としたインポートファイルは今回CSV形式となっております。

    CSVファイルをEUC-JP→UTF-8に変換し保存。

    XAMMPで空のデータベース(照合順序: utf8_general_ci)を作り、上記のCSVデータをインポート。

    ・phpMyAdmin内の表示でデータは文字化けなく読めております。記事が一部消滅しているといった現象もございません。
    ・構造で varchar、text フィールドの照合順序が utf8_general_ci・・・
    utf8_general_ciとなっております。

    詳細
    □COL 1|varchar(931)|utf8_general_ci|はい|NULL
    □COL 2|varchar(1147)|utf8_general_ci|はい|NULL

    のようになっております。

    環境情報

    【MySQL】
    サーバ: localhost via TCP/IP
    サーバのバージョン: 5.5.8
    プロトコルバージョン: 10
    ユーザ: root@localhost
    MySQL の文字セット: UTF-8 Unicode (utf8)

    【Web サーバ】
    Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1
    MySQL クライアントのバージョン: mysqlnd 5.0.7-dev –
    PHP 拡張: mysql

    【phpMyAdmin】
    バージョン情報: 3.3.9

    モデレーター Seisuke Kuraishi (tenpura)

    (@tenpura)

    Meのデータベースから落としたインポートファイルは今回CSV形式となっております。

    CSV形式ですか。wp_posts、wp_comments などのテーブルはありますか?
    フィールドも含めエクスポート元のデータベースと同じ構造になっていなくてはなりません。
    完全な形でインポートできない場合は SQL 形式でエクスポートとインポートを行ってください。

    Kuraishi様
    ありがとうございます。

    SQL形式にて、エクスポート&インポートを試してみました。
    コメントスパムが多くファイル容量が大きいとエラーが出てしまうため
    commentmeta
    comments
    のテーブルはインポートしておりません。

    links
    options
    postmeta
    posts
    terms
    term_relationships
    term_taxonomy
    usermeta
    users
    上記テーブルにておいて、種別varchar→utf8_general_ciであることを確認致しました。
    SQLデータも、表示で文字化けなく読めております。

    モデレーター Seisuke Kuraishi (tenpura)

    (@tenpura)

    SQL形式にて、エクスポート&インポートを試してみました。
    コメントスパムが多くファイル容量が大きいとエラーが出てしまうため
    commentmeta
    comments
    のテーブルはインポートしておりません。

    制約のないローカル環境で一通りの流れをやってしまいたいので、すべてのテーブルをインポートしてください。
    エラーの解決が必要である場合は状況をもっと具体的に書いてください。

    新しく入れたWordPressは、2001_blog

    確認ですが、2001_blog のブログは運用中で新しい記事があり、そこに ME の旧記事をマージするというのがやりたいことでしょうか?

    Kuraishi様
    ありがとうございます。

    コメント関連のテーブルも含めた状態でインポートしますと、
    「アップロードしようとしたファイルが大きすぎるようです。」
    というインポートの際にエラーが出てしまい、インポート作業を完了させることができない状況です。

    2001_blogは現在、運用中ではありますが、記事は1つもございません。
    ここにMeのデータを引っ張ってきて、マージしたいと考えております。
    こちらは最初の記事でも説明しました通り、
    Meも、今回新しく入れたWordPressも、いずれも同じデータベース内にございます。
    接頭語を変えて、1つのデータベースに複数のサイトのWordPressが入っている状況でございます。

    モデレーター Seisuke Kuraishi (tenpura)

    (@tenpura)

    「アップロードしようとしたファイルが大きすぎるようです。」
    というインポートの際にエラーが出てしまい、インポート作業を完了させることができない状況です。

    php.ini で以下設定の値を大きくして apache を再起動して試してみてください。

    upload_max_filesize
    memory_limit
    post_max_size

    完全なインポートができたらデータベース全体を SQL 形式で一括(全てのテーブル含む)で エクスポートしてください。
    エクスポートしたファイルは作業をやり直す場合に利用する可能性がありますので複製してバックアップを保存しておいてください。

    次にこのデータベースに最新の WordPress から接続できるよう設定します。
    エラー等でても構いませんのでとりあえず以下手順を試してください。

    1. WordPress 3.1.1 日本語版 を入手し XAMMP Apache の公開ディレクトリに展開する。
    2. Me の wp-config.php の設定値を 3.1.1 wp-config-sample.php に移植して変名し新しい wp-config.php とする。環境にあわせ変更する必要のある項目は修正する。
    3. 先ほどエクスポートした SQL のファイルをテキストエディタで開き、ME の URL 文字列をローカル環境の URL に一括置換して保存する。(例: [ME] http://example.com/blog → [ローカル] http://localhost/wordpress
    4. phpMyAdmin で WordPress のテーブルをすべて削除し、修正した SQL ファイルをインポートする。
    5. http://localhost/wordpress にアクセスして管理画面にログインする。

    問題がなければローカルでの再構築はこれで完了です。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • トピック「MEからWordPress 3.1環境でデータ復元」には新たに返信することはできません。