[MySQL] Incorrect datetime value: ‘0000-00-00 00:00:00’ for column エラー対処方法

MySQLを古いバージョンから新しいバーションにした時に、phpMyAdminであるカラムのNullを許可しようとした時に(カラムの構造を変更)「Incorrect datetime value: ‘0000-00-00 00:00:00’ for column」というエラーが発生しました。

[環境] MySQL8.x

これはSQLモードが原因なのでそれを変更します。

ターミナルからMySQLにログインして、下記を実行します。

 SELECT @@GLOBAL.sql_mode;

デフォルトでは下記の項目が設定されていました

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

MySQL5.6の環境に合わせる場合は、下記のようにします。

SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';

doesn’t have default valueというエラーが多く出る場合は下記のようにすると直ります。

SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';

STRICT_TRANS_TABLESを削除します。



Author: webmaster