![](https://www.searchlight8.com/wp/wp-content/uploads/2016/02/photo_00030-wpp1707397155734-870x580.jpg)
MySQLを古いバージョンから新しいバーションにした時に、phpMyAdminであるカラムのNullを許可しようとした時に(カラムの構造を変更)「Incorrect datetime value: ‘0000-00-00 00:00:00’ for column」というエラーが発生しました。
[環境] MySQL8.x
これはSQLモードが原因なのでそれを変更します。
ターミナルからMySQLにログインして、下記を実行します。
0 1 2 |
SELECT @@GLOBAL.sql_mode; |
デフォルトでは下記の項目が設定されていました
0 1 2 |
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
MySQL5.6の環境に合わせる場合は、下記のようにします。
0 1 2 |
SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'; |
doesn’t have default valueというエラーが多く出る場合は下記のようにすると直ります。
0 1 2 |
SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION'; |
STRICT_TRANS_TABLESを削除します。