mysqldumpで出力したデータ等でインサートできない時の確認

‘0000-00-00’がデータに含まれる場合

sql_modeを確認する。

SELECT @@GLOBAL.sql_mode;

STRICT_TRANS_TABLESやNO_ZERO_IN_DATEが設定されている場合、エラーとなる場合があるので要変更。

変更はmy.cnfに書くか、一時的であればインサート前にSET SESSIONで変更。

(以下例)

変更前

STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

変更

SET SESSION sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

Got a packet bigger than ‘max_allowed_packet’ bytesの対応

データ量がmax_allowed_packetの設定を越えている。

以下で現在の設定を確認。

show variables like 'max_allowed_packet';

my.cnfに以下を記述して変更(8MByteにするとき)

max_allowed_packet=8M