timestamp default value invalid

timestamp 设置 default ‘0000-00-00 00:00:00’ 报错,原因是 mysql5.7 默认的 sql_mode 有 NO_ZERO_IN_DATE 和 NO_ZERO_DATE 两项,不允许 timestamp 的默认值都是 0

在命令行临时修改 sql_mode

set @@global.sql_mode=(select replace(@@global.sql_mode, 'NO_ZERO_IN_DATE,NO_ZERO_DATE', ''));

也可以在 mysqld.conf 文件中修改 sql_mode, 可以先通过 select @@global.sql_mode 获取原始的 sql_mode ,然后将其中的 NO_ZERO_IN_DATE 和 NO_ZERO_DATE 删除即可。

sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

参考:https://blog.csdn.net/tiantang_1986/article/details/89020637