Wonderful! WordPress

いまさらの phpMyAdmin インポートエラーの対処の備忘録

WordPress6.0 になったら、プラグイン Google XML Sitemap でエラーがでるようになってしまった。ほどなく、アップデートされて エラーは出なくなったが、オールクリアとなったわけではなくいまだ Notice が出ている。

プラグインに頼っていると、こういうエラーで使えなくなるのが、なんとももどかしいのである。であるからにして、これも自作してしまおうかなどと、ローカルにデータベースのクローンなどを用意しようと始めたのではあるけれど・・・。

phpMyAdmin の インポートにおける incorrect format parameter という error

ということで、いきなりエラーが出てつまづいてしまったのである。
ただこのエラー、incorrect format parameter というのは、この文字列をみると SQL におけるエラーかと、ややこしそうな感じがするけれど実は単純なことで、ネットをちょっと探ってみればすぐに解決できることである。なんてことはなく、読み込むファイルサイズが大きくて、php.ini の設定を超えてしまうから出るということである。
であるからにして、その php.ini の次の2つの値を少し大きなものに変更してやればこのエラーは出なくなる。もともとの値は、2M と 8M だったと思う。ファイルサイズからして 16M でもよさそうだったが、32M でやってみた。
post_max_size = 32M
upload_max_filesize = 32M

スクリプトがタイムアウトにて中断

いざ、インポート処理が始まってはみたものの、表示される内容に全く動きはなく、それでもハードディスクのアクセスランプは時折チカチカとして動いているようなので、しばらく様子をみる。
そして、やっとというか表示が変わってみると、赤い帯があって少しいやな雰囲気を感じることとなる。

「スクリプトがタイムアウトしました。インポートを完了させたいのであれば同じファイルを再送信すればインポートが再開されます。」
と、教えてくれているし、「同じファイルを再送信」の部分がリンクになっているのでそれをクリックすると、インポートの最初のページへと戻してくれるので、再び、ファイルを指定して始めさせる。

が、再び待つことしばし、次に表示された画面も、ほぼ赤い部分が占めていて、大量の文字でうめられている。
何かエラーがあってこの先には進めない!
と、いうようなことが表示されていたと思う。(プリントスクリーンしたつもりが、できていなかったので正確に何と表示されていたのかは定かではなし。)

これはどうも、中断させてしまうと再開させてもだめなようである。
ならば、タイムアウトさせない方法はと?これもネットをちょっと探ってみれば、先人たちが教えてくださっているので、その方法はすぐにわかる。今度は、phpMyAdmin の方の設定を変更するということ。

ファイル -> phpMyAdmin/libraries/config.default.php
$cfg[‘ExecTimeLimit’] = 0;

この、デフォルトで 300 になっていた ExecTimeLimit の値を、0 に変更する。( 0 for no limit ) と書いてある通り、0 を指定すると制限なしになるということである。

そして、再チャレンジ。
随分と待たされる。長いなぁ!と思って時計を見てから16分かかってやっと終了した。長いなぁ、と思ってからの16分だから、優に20分以上はかかったのだと思う。ちなみに、この時に使った インポートファイルは zip で圧縮されたファイルで、そのサイズは 10.9MB だった。そして我が PC は Windows11 からは見放された、Core I5 の老 Windows10 マシーンである。まぁ、何はともあれ、これでエラーもなく、問題なくインポートされていた。

と、いうことで、php.ini やら phpMyAdminconfig.default.php の変更した設定をもとに戻して、めでたしめでたしである。
と、いいつつ、実はというとなんだけれど、もっと速く処理できる方法もある。まぁ、ちょっとだけ、手間は余計にかかるけれど。
それは、サイズの大きいテーブルはそれぞれ個別に圧縮せずにエクスポートし、それ以外の小さいものはまとめて圧縮せずにエクスポートして、それぞれ別々にインポートさせるというやり方である。

大きいテーブルを個別にインポート

ちなみに、我が WordPress サイトの各テーブルの状況は以下のようになっている。画像サイトなので、相当な数の画像をアップロードしていることにより、wp_posts テーブルよりも wp_postmeta テーブルのほうが巨大になっていて、これが最大であり、タイムアウトして中断していたのも wp_postmeta テーブルなのであった。

Server : PHP 8.0.8 : phpMyAdmin 4.0.10.18
localhost : PHP 8.0.8 : phpMyAdmin 5.1.1

wp_cbnetpo_ping_optimizer3.1 MiB
wp_commnetmeta13.5 KiB
wp_comments20 KiB
wp_links3.6 KiB
wp_options859.8 KiB
wp_postmeta121.3 MiB
wp_posts51.3 MiB
wp_termmeta4 KiB
wp_terms68.6 KiB
wp_term_relationships1.3 MiB
wp_term_taxonomy55.5 KiB
wp_usermeta14.7 KiB
wp_users7.1 KiB

と、いうことで、wp_posts テーブルと wp_postmeta テーブルはそれぞれ個別にエクスポートさせ、残りはまとめてということにした。はじめは全て圧縮せずにと思っていたのだけれど、結局、思うところあって wp_postmeta だけを非圧縮ということでやった。エクスポートしたファイルのサイズはそれぞれ以下のごとし。

postmeta.sql108,309 KB
posts.sql.zip5,758 KB
others.sql.zip390 KB

postmeta テーブルのファイルサイズが 108 MB もあるので、php.ini post_max_sizeupload_max_filesize の設定値は 128M にして、このときは phpMyAdminExecTimeLimit の設定値はデフォルトの 300 のまま変更せずに実行させた。
まずは、postmeta テーブルからインポートさせたが、中断することもなく無事に処理された。と、いうことで後の2つも問題なく済み、phpMyAdminExecTimeLimit がデフォルト値のままで中断することなく終わったということからも分かる通り、まとめてやったときの半分の時間もかからなかったと思う。

まぁ、実のところ、自的にはこの方法を先にやっていたのであるけれど、時間制限がなければまとめてできるのだろうかと、ちょっと興味があったので後からもう一度試してみたということなのである。自分のデータベースで得た結果が、全ての場合において有効であるとは全く言えないのではあるけれど、サイズ的な状況など近いものがあれば、ちょっと手間をかけてみるのも、時間の節約にはなるのかもしれない。

Leave a Reply!

JavaScript is necessary to send a comment.
You can edit and delete your comment if you input a edit key.
Edit key is necessary for attesting you when you edit and delete it.
The tag of HTML cannot be used in comment.
When you comment for the first time, it is displayed after the approval of the administrator.
Because I cannot speak English so much, it takes time to answer.
Required fields are marked *.

※Please enter more than 5 characters only alphabets.
※Edit or delete are possible for 2000 days after approval.

*

♠Simplistic Comment User Editable v4.0

♠When visitors leave comments on the site this site collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.
♠This site does not use cookie when visitors leave comments and commenter edit comment.
♠This site uses Akismet to reduce spam. Learn how your comment data is processed.

Comments feed

Trackback URL : https://strix.main.jp/wp-trackback.php?p=170999

Sanbanse Funabashi

Top

スクロールさせるか画像をクリックすると元に戻ります。