BigDump でテーブルをインポートしようとした時に躓いたことと、解決法をメモしておきます。

テーブルをインポート出来ないエラー1

Stopped at the line 357.

At this place the current query includes more than 300 dump lines. That can happen if your dump file was created by some tool which doesn't place a semicolon followed by a linebreak at the end of each query, or if your dump contains extended inserts or very long procedure definitions. Please read the BigDump usage notes for more infos. Ask for our support services in order to handle dump files containing extended inserts.

このようなエラーが出た場合、エクスポートする際の「作成するクエリの最大長」を調整する必要があります。

この項目には、私の環境の場合、50000の数字が入っていました。これを1000にしてエクスポートすれば、問題無くインポート出来るようになります。最大40000でもインポート出来ました。

テーブルをインポート出来ないエラー2

Error at the line 53: ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
????
MySQL: Table 'calc1' already exists

テーブルが既に存在している場合、このエラーが出ることがあります。レコードをインポートしようとしたら、既にテーブルが存在していた為、インポート出来ない、という意味です。テーブル自体を削除すれば、問題無くインポート出来るのですが、既に消してはいけないレコードが存在する場合は、削除することは出来ません。この場合は、以下の手順でエクスポートしたDBをインポートする必要があります。

エクスポートする際に、「IF NOT EXISTS (less efficient as indexes will be generated during table creation)」にチェックして下さい。これをチェックすると「テーブルが存在しない場合に、テーブルを作成する」という意味になります。つまり、テーブルが既に存在していれば、既存のレコードにレコードを追加してくれます。これで問題無くインポート出来ます。

因みに、「DROP TABLE / TRIGGER コマンドを追加する」をチェックすると、インポートする際に、一旦、テーブルを削除するという意味になります。

テーブルをインポート出来ないエラー3

Error at the line 347: (2286, 1456207800, 94, 1, 1.08, 0, 0, 0, 0, 55, 0, 51, 50, 0, 0, 0, 0, 94000, 1.44, 9.36, 21.8097447796, 1.89210950081, 0);

???

MySQL: Duplicate entry '1301-1456207800' for key 'PRIMARY'

と出るのは、インポートしようとしたものと同じIDのレコードが既に存在する場合です。

このような場合は、エクスポートする時に、「データをダンプするときに使うコマンド」を「REPLACE」にすればOKです。同じレコードが存在する場合はレコードを上書きしてくれます。

 

如何でしたでしょうか?最初、私がこれらのエラーに直面した際には戸惑い、検索しても中々、ビンゴの情報が見つかりませんでした。トラブル解消の一助になれば幸いです。