WP移管でエクスポート忘れたけどphpmyadminで復活っ
2016.03.31
wordpressのデータを新サーバーへお引越ししなきゃいけないのに、肝心のエクスポートを忘れてもうたっっ!
ヤバいっっ!!何か策はないかっっ??
っと、
あった!!!
データーベースだっ!!
サーバー移管中なら旧サーバーにデータがある!
でも、MySql触ったことないしなぁ・・・まぁやってみよう!
っといろいろいじった結果、復活できたので、忘れないうちにメモ!
※MySql初心者で、あくまで「わたしはこうやったよ」として記述しています。
間違った見解をしているかもなので、正しい知識は他の方のブログを見た方が良いです。
1)旧サーバーからWPのデータをDL
2)新旧サーバーのphpMyAdminにログイン
3)旧サーバーのSQLデータをエクスポート
4)新サーバーにインポート(前準備)
5)新サーバーにインポート
6)プラグインまわり
7)ふっかぁぁぁぁぁぁぁぁぁぁぁぁつ!!
旧サーバーからWPのデータをDL
テーマはバックアップがあるので、以下だけDLしました。
wp_content内の「plugins」 と 「uploads」
pluginsは、使っているプラグインのデータです。
uploadsは、メディア(画像)のデータです。
といってもサーバー移管作業が始まるとFTPにアクセスできなかった・・・・。
ので、めちゃんこ使いづらいファイルマネージャーからDLしました。
もしファイルマネージャ-他がなくて、DLできない場合は、
プラグインはなんとかなるけど、メディアはどーしようもないので、
サイトの保存してみたり、別の方法を探してみてください。
新旧サーバーのphpMyAdminにログイン
phpMyAdminの場所は、サーバーによって違うのでサーバー側に聞いてください。
さくらインターネットでは、
「アプリケーションの設定」→「データベースの設定」から作ったDBをクリックすると
「管理ツール ログイン」のリンクが吐き出され、そこからアクセスできます。
ログイン画面がこちら
画面左側がメインメニューで左側にタブメニューと詳細が表示されています。
commentmeta
comments
links
options他の前にぼかしを入れましたが、ここには接頭語が入ります。
大凡の場合は、「wp_commentmeta」のように接頭語は「wp_」ですが、
さくらインターネットでは、接頭語があらかじめ吐き出されているため、
画像はぼかしました。
っで、旧サーバーのデータをエクスポートして、新サーバーにインポートし復活させる!
がっっ
エラーが出るのでデータを修正しないといけません!
旧サーバーのデータをエクスポート
画面右側のタブメニュー「エクスポート」をクリックすると、
「DBのダンプ(スキーマ)表示」が出てきます。
よくわかんないけど、とりあえずSQLにチェックして実行すると、ファイル名.sqlがDLできます。
ファイルの中身を見ると、上の全メニュー名とデータの型と結果が記載されています。
新サーバーにインポート(前準備)
もし新サーバーにて接頭語が設定されていた場合
sqlファイルを修正する必要があります。
新サーバーphpMyadmin画面の左側の名称と同じにしなくてはいけません。
たとえば、
旧サーバーは「wp_commentmeta」、でも、
新サーバーは「wp1234d1commentmeta」だった場合は、
「wp1234d1commentmeta」で指定しなければいけません。
なので、旧サーバーのデータファイルを開いて、
一括置換しました。
次に、インポートしますが、エラーが出ると思います。
試しに、今修正した旧サーバーのデータをインポートしてみます。
エラーが出るけどインポート
タブメニューのインポートから、ファイルを指定し実行でインポートします。
はいっエラーです。
「Duplicate entry ‘1’ for key ‘PRIMARY’」
いつも思います。
エラーメッセージ吐き出す気なら、
併せて解決策も提示しといてくれよと。
このエラーは、
同じ番号(1)にはすでにデータが入っていて、
(上書きはできないので)重複エラーという意味。
新旧のphpmyadminの左メニューでoptionsを開いて比べて見てみてください。
option_idの列に入っている番号(1とか2とか)が、新にも旧にもあって重複しています。
新のoption_idの番号と重複している旧データを削除しなければいけません。
旧サーバーのデータファイルを開いて「options」を検索すると、以下のような記述が出てきます。
—-
INSERT INTO `wp_1options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
(1, ‘siteurl’, ‘http://hogehoge.com/wp’, ‘yes’),
(2, ‘home’, ‘http://hogehoge.com/wp’, ‘yes’),
(3, ‘blogname’, ‘ほげったブログ’, ‘yes’),
(4, ‘blogdescription’, ‘Just another WordPress site’, ‘yes’),
(5, ‘users_can_register’, ‘0’, ‘yes’),
・・・・
—-
っで、削除前に旧サーバーのデータファイルのバックアップをとっておきましょう!
あとで使います。
ファイルをコピーして、重複しているものを行ごと削除します。
エラーが出るけどインポート 2
修正したファイルを、エラーが出るけどもっかい試しにインポート。
またまたエラー。
今度は entry ‘1’ ではなく entry ‘1245’ 。
つまり1245番がエラーで、それ以下も処理もできやせん!となりました。
旧サーバーのデータファイルで1245番を探したら、
番号間にデータの型(INSERT INTO)が記載されていました。
—-
(1244, ‘option_name’, ‘option_value’, ‘autoload’),
INSERT INTO `wp_1options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
(1245, ‘option_name’, ‘option_value’, ‘autoload’),
—-
INSERT INTO~は、データの型にマッチしない(データの型を指定しているだけな)のでエラーになりました。
ということで、データテーブル1番の上に記載してある「INSERT INTO」以外、
データーテーブル間にある「INSERT INTO」のみを削除しました。
※1番の上にあるのを削除したらエラーになります。
新サーバーにインポート
すべての修正が完了したので、インポートしてみたらやっとインポート成功!
もし成功しなかったら、「wp_commentmeta」「wp_options」ごとにエクスポート&インポートできます。
何がエラーなのかわからない時は、一つずつ調べた方が良いです。
プラグインまわり
これ、やっかいです。
もともとプラグインを使っていろんな設定でページを吐き出していました。
データテーブルにもプラグインに関する記述があります。
どんなプラグインをインストールしているか、プラグイン名や有効かどうかなどです。
新旧のoption_name [active_plugins]の値を見てみると、
新の方はプラグインをインストールしていないので、
デフォルト値が、
旧の方はインストールしたプラグインが入っています。
っで、新のWP管理画面で、新たにインストールして設定するとなると、
プラグイン単体がバージョンアップされている場合もあるし、
フォルダ名とか階層が変わっている場合もあります。
なので、いったん旧サーバーのプラグインと全く同じ状態にして、
あとでプラグインの更新をすることにしました。
とりあえず、先にDLしておいたwp_content内の plugins と uploadsを新サーバーにアップロードしておきます。
option_name [active_plugins]
旧サーバーのデータファイルの
option_name [active_plugins]にはプラグイン関連の記述があります。
新旧サーバーのphpmyadominのoptionsを開き、 [active_plugins]を探し鉛筆マークをクリックします。
すると編集画面が開きます。
新サーバーに入っているoption_valueの値を、旧サーバーのものに差し替えて実行します。
ちなみにプラグインの方のデータはpostmetaに格納されていました。
ふっかぁぁぁぁぁぁぁぁぁぁぁぁつ!!
サイトをチェック!
問題ない!
ふっかぁぁぁぁぁぁぁぁぁぁぁぁつ!!!!!!!!!!!!!!!
Contact