WPを移管するために他サーバーからWPのデータとDBのデータをいただき、移管先のDBにデータをインポートしようしたところデータファイルが大きすぎるため、なんちゃらとエラーがでてインポートできず、それならばphpMyAdminでのエクスポートはテキストで出力してもらい、それを移管先のphpMyAdminでSQL文を入力すればよいかと思い試みたときでした。

 

実行してもウンともスンともならず・・・

 

なるほど、こんな感じでデータが大きすぎて実行できてなかったのかと思い、今度は分割してやっていこうと思い、長いSQL文の前半近くはしっかりと実行できテーブルもいくつかできました。

では後半の部分をやってみよう・・・

 

Invalid default value for ‘post_data’

 

これか、インポートできなかった原因は。

で、ネットで調べてみると同じような症状で解決した内容がいくつかありました(ありがとうございます!)

その内容とは、MySQLではDATETIME形のサポートしている値は ‘1000-01-01 00:00:00’ から ‘9999-12-31 23:59:59’ なんだそう。

インポート文をみてみると

 

--
-- テーブルの構造 `wp_posts`
--

CREATE TABLE `wp_posts` (
`ID` bigint(20) UNSIGNED NOT NULL,
`post_author` bigint(20) UNSIGNED NOT NULL DEFAULT 0,
`post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_content` longtext NOT NULL,
`post_title` text NOT NULL,
`post_excerpt` text NOT NULL,
`post_status` varchar(20) NOT NULL DEFAULT 'publish',
`comment_status` varchar(20) NOT NULL DEFAULT 'open',
`ping_status` varchar(20) NOT NULL DEFAULT 'open',
`post_password` varchar(255) NOT NULL DEFAULT '',
`post_name` varchar(200) NOT NULL DEFAULT '',
`to_ping` text NOT NULL,
`pinged` text NOT NULL,
`post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_content_filtered` longtext NOT NULL,
`post_parent` bigint(20) UNSIGNED NOT NULL DEFAULT 0,
`guid` varchar(255) NOT NULL DEFAULT '',
`menu_order` int(11) NOT NULL DEFAULT 0,
`post_type` varchar(20) NOT NULL DEFAULT 'post',
`post_mime_type` varchar(100) NOT NULL DEFAULT '',
`comment_count` bigint(20) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

 

なるほど、そういうことですか。

ということでそれぞれ0000-00-00 00:00:00 を 1000-01-01 00:00:00 に変更して再度実行してみると無事テーブルが作成されました!

ちなみに以下のサイトを参考にしました。再度感謝!

 

shungo blogさん