【WordPress】phpMyAdminでタイムアウトエラーが起こった時の対処方法
※当サイトはWeb広告を利用していますWordPressのMySQLのデータをphpMyAdminでインポートしようとした際に、以下のようなエラーが出ました。
日本語にすると「スクリプトのタイムアウトが経過しました。インポートを終了する場合は、同じファイルを再送信してください。インポートが再開されます。」という内容です。
データ容量が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において超重要な部分です。誤って必要なデータを削除しないようにしてください。検証する場合は、バックアップをとって、自己責任でお願いします。