35歳で会社を辞めて独立したまめのブログ

まめー

【WordPress】phpMyAdminでタイムアウトエラーが起こった時の対処方法

※当サイトはWeb広告を利用しています

WordPressのMySQLのデータをphpMyAdminでインポートしようとした際に、以下のようなエラーが出ました。

Script timeout passed, if you want to finish import, please resubmit the same file and import will resume.

日本語にすると「スクリプトのタイムアウトが経過しました。インポートを終了する場合は、同じファイルを再送信してください。インポートが再開されます。」という内容です。

データ容量が1.7GB近くほどあり「MySQLのメモリ不足」または「php.iniのアップロードファイルの最大容量」を疑いました。

しかし、原因はプラグイン「WordPress Popular Posts」のデータが貯まりすぎていることでした。WordPress Popular Postsを削除するとタイムエラーが起きずにインポートできました。

今回、実行したはエックスサーバーです。

スポンサードリンク

タイムアウトエラーの原因


phpMyAdminでテーブルを見たところ「wp_popularpostssummary」の行が異常に多いことを発見しました。13,964,289行というとんでもない行数。サイズが1.6GiBもあります。MySQLのデータをインポートした際にも、このテーブルまでしか読み込めていなかったんですよね。

「wp_popularpostssummary」は、アクセス数などを元に、人気記事をWordPressに表示させるプラグイン「WordPress Popular Posts」のデータです。

おそらく、人気記事を集計するために、ログが大量に発生していたものと思われます。

wp_popularpostssummaryを削除して解決


私は、WordPress Popular Postsを初期のころに使っていたのですが、使わなくなってからは、停止していました。

そのため、WordPressの管理画面より「WordPress Popular Posts」を削除。ログなどもすべて削除されるため、phpMyAdmin「wp_popularpostssummary」がきれいになくなりました。

データ容量も軽くなってすっきり。圧縮してエクスポートしたsql.gzのデータも軽くなりました。


再度インポートすると、エラーもなく正常に読み込めました。

MySQLのデータ容量が多いと、タイムアウトエラーで、phpMyAdminに読み込めない場合があります。私の場合は「WordPress Popular Posts」が原因でしたが、タイムアウトエラーが出た場合は、データ容量の削減などを試してみてください。

・使っていないプラグインの削除
・リビジョンの削除
・スパムコメントの削除
・php.ini(memory_limit、post_max_size、upload_max_filesizeの値変更)
など

MySQLやphpMyAdminは、WordPressにおいて超重要な部分です。誤って必要なデータを削除しないようにしてください。検証する場合は、バックアップをとって、自己責任でお願いします。