サポート » 使い方全般 » データベースインポート時にタイムアウトしない方法

  • wordpressを誤って上書きしてしまったのですが、復旧後にサイトは表示されましたが管理画面に入れなくなりました。

    復旧の際、データベースインポート中に下記の表示が出ます。

    「スクリプトがタイムアウトしました。インポートを完了させたいのであれば同じファイルを再送信すればインポートが再開されます。」

    再開して終了すると下記のエラーが表示されます。

    エラー

    実行した SQL:


    — Table structure for table wp1_slim_browsers

    DROP TABLE IF EXISTS wp1_slim_browsers ;

    MySQLのメッセージ: ドキュメント
    #1217 – Cannot delete or update a parent row: a foreign key constraint fails

    結果として「wp1_slim_content_info」以降のデータがインポートされておらず、「wp_users」がないのでログインできないのではないかと思っています。

    タイムアウトが原因という情報を見つけて、.htaccessに制限時間3000、容量300Mと記述を追加してみましたが結果は同じでした。インポートしたいSQLファイルの容量は107Mです。

    インポート時にタイムアウトしない方法はないでしょうか?
    最後まで完走する方法を教えていただけると大変助かります。
    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター Takuro Hishikawa

    (@hissy)

    インポートデータを分割して複数回に分けて実行しましょう

    BigDumpでエラーが出ますと同じでしょうか? エラーメッセージが異なり、それに含まれるテーブル・プリフィクスも違っているので判断がつきません。使っているツールも違うということでしょうかね? 特に、エラーメッセージはトラブルシューティングをするのに最も重要な情報ですから、省略なしで、正確なものが必要です。たとえば、上のリンク先のエラーメッセージは納得がいきますが、こちらのエラーメッセージは不可解です。

    WP Slimstat をお使いだと思いますが、このプラグインは、テーブルを作るときに、「外部キー拘束」を設定します。「外部キー拘束」についの詳細は、MySQL のマニュアルを参照してください。

    これが設定されると、テーブルにデータがある限り削除できないテーブルができます。WP Slimstat の作ったテーブルが全て残っているとすると、slim_stats テーブルがそういう状態になっているはずです。これを削除するには、拘束の対象となっているテーブルを先に削除する必要があります。具体的には、下のテーブル群ですが、slim_stats テーブルが最後に削除されるようになっていなければ、エラーで止まるのは正常です (MySQL が阻止します)。

    1. slim_browsers
    2. slim_screenres
    3. slim_content_info
    4. slim_outbound
    5. slim_stats

    ことろが、こちらのメッセージでは、slim_browsers テーブルを DROP するときに foreign key constraint fails エラーが出ています。これは異常事態で、WP Slimstat の通常のインストールではありえない動作です。その「あり得ないこと」が現実に起こっているか、エラーメッセージに省略があるか、あるいは、まったく別の原因でエラーが出ているかです。

    不正確な情報をもとに判断するのは危険ですが、とりあえず、対策としてやれることは、下の 3 つがあります。

    1. 上に書いた WP Slimstat の 5 つのテーブルを、手動で削除してから、インポートする。
    2. インポートファイルから、WP Slimstat のテーブルに関する部分を削除してから、インポートする。
    3. データベースを新たに作り直してからインポートする。

    2 と 3 は、データベースと SQL 文が理解できることが前提となるので、よくわからない場合はやらないでください。また、1 を行うとしても、それで成功する保証はありません。なお、ファイルが大きすぎるのは事実なので、分割は有効です。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「データベースインポート時にタイムアウトしない方法」には新たに返信することはできません。