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を削除します。