質問
-
ライト
データベースのインポートができません。しかも、記事データだけが・・。 -
本文:
お世話になります。
スターサーバーフリーから、ライトプランへ独自ドメインのワードプレスを移行する途中で詰まっています。
今まで、スターサーバーフリーで独自ドメインを使ってサイト構築をしていましたが。
サイトをhttps化したくなったので、ライトプランへのプラン変更を考えました。
フリーの管理画面で「プラン変更」が見当たらず。
新たにライトプランを契約し、フリーの独自ドメインを削除→ライトプランで独自ドメイン追加。
この流れでワードプレスブログの引っ越しを試みました。
ライトプランに独自ドメインを追加し、ワードプレスの簡易インストールを行った後。
FTPで必要なファイルをローカルに保存し、サーバに移しました。
・・ここまでは良かったのですが。
フリーのDBをphpmyadminでエクスポートしたsqlを、ライトプラン側のphpmyadominでインポートすることができませんでした。
インポートボタン自体は押せるのですが、wp_postsテーブルのデータだけが何故か入っていません。
(正常終了しました、というメッセージも、エラーメッセージも何も出ない)
試しに、旧DBからエクスポートしたSQLファイルの中に入っているinsert文を手動で入れてみると、問題なく入ります。
時間をかけて記事の部分のinsert文を手動で実行し、記事は9割がた復活しました。
スマホやPCでサイトにアクセスすると普通に動作しているので、外目には完璧に動いている感じです。
ですが、ワードプレスにログインすると、不具合だらけ!
新規投稿の画面は真っ白で、新たな投稿ができません。
また、以前からあった未公開の記事を公開すると、記事一覧でその記事が3つ表示されるなど、変な挙動になりました。
デバッグを有効にすると、次のようなエラーメッセージも出ています。
Notice: Trying to get property 'post_type' of non-object in /home/ドメイン/public_html/wp-includes/post.php on line 6801
Notice: Undefined property: stdClass::$ID in /home/ドメイン/public_html/wp-admin/post-new.php on line 67
このような症状になり、困っている状況です。
現在、スターサーバーフリーでのワードプレスのDBはまだ生きています。
よって、引っ越しに必要なデータは旧DBからエクスポート可能です。
しかし、エクスポートしたsqlをライトプランのDBにインポートできない・・。
記事データは強引に手動でinsertしたので、漏れもあるかもしれない。
そのため、ワードプレスで不具合が発生しているのか??
・・という状況です。
エクスポートやインポートの際の設定に、何か不備があったのでしょうか。
エクスポート時は、「DROP TABLE 〜」にチェックをしていたのですが。
また、エクスポートしたSQLファイルをメモ帳で開いてみると・・。
記事データの部分のinsert文は多くが8000字を超えていて、途切れていたり。
ファイル全体で1万2000行もあり、容量が85MBあります。
(当サイトの記事数は300強程度です。)
●エクスポートしたsqlファイルのファイル容量が大きすぎる。
●1つ1つのinsert文の文字数が多過ぎる、長すぎる。
●テキストエディタで一回でも開いて記述を変えると、8000字以上のinsert文は途切れて保存されてしまう?
(データベース名などの記述を変更して保存すると、8000字以上が切り捨てられてinsert文が壊れる?)
こういった理由で、wp_postsテーブルの記事データだけがインポートできていない。
・・という現象は、起こり得るのでしょうか?
ワードプレスの移行時における、データベースのエクスポート+インポートに詳しい方に。
ぜひとも教えていただきたいのですが・・。
- 緊急度:通常投稿者:タッコングさん投稿時間:2020/05/31 03:43
回答 No.10280
-
本文:
> ファイル全体で1万2000行もあり、容量が85MBあります。
スターサーバーフリーの制限からすると、大きすぎるのではないかという気がします。
エクスポート時に問題が表面化したのでは。
https://www.star.ne.jp/free/faq/service_capacity_db.php
エクスポートしたデータ自体が壊れているとすると、まずインポート以前に問題が起こっていると思います。
> エクスポートやインポートの際の設定に、何か不備があったのでしょうか。
> エクスポート時は、「DROP TABLE 〜」にチェックをしていたのですが。
エクスポート時は、「詳細」ではなく「簡易」でかまわないはずです。
- 投稿者:ayaguchiさん 投稿時間:2020/05/31 04:30
回答 No.10281
この回答がベストアンサーです
エクスポート時にデータが大きすぎてウェブサーバ側で切られている可能性もありますので、
その場合は、一度ではなく分割してエクスポートするとよいようです。
参考:
http://algorhythnn.jp/blg/2013/09/17/phpmyadmin-disconnect/
質問者からのコメント
容量の多い「wp_post」テーブルと「それ以外の全部」テーブルを
それぞれsqlではなくzip形式でエクスポートし、インポートしたところ。
記事の方は5分以上かかって正常終了メッセージが出ました。
1000 個以上のクエリが実行され、新データベースの記事が復活できました。
前回に失敗した時は、フリーズと勘違いして途中で画面を遷移してしまったり、
ブラウザを閉じてしまったのかもしれません。
また、zipではなくsqlファイルとしてエクスポートしており、
中身をテキストエディタで開いてしまった上で保存した可能性があります。
そのため長いinsert文はテキストエディタの1行8000字制限にひっかかって
8000字以降が切り捨てられ、おかしくなった可能性がありました。
ともかく、記事データのインポートに関しては解決したようです。
ありがとうございました!