项目从MySql5.5迁移到MySql5.7 timestamp默认值不能为空问题

今天客户项目从开发环境搬迁到生产环境时,因为mysql版本不一致,导致部分表格无法迁移
具体原因为Mysql默认不允许timestamp设置0000-00-00 00:00:00的默认值
经过一番搜索,得到几种解决方案
最后方便起见
直接把timestamp格式字段默认值改成了2000-01-01 00:00:00

常见的方法为修改mysql配置文件,把NO_ZERO_IN_DATE,NO_ZERO_DATE这两个配置去掉

在my.cnf[mysqld]下添加

sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 

Mysql 5.7 5.6 5.5新增保留字

Mysql5.6新增保留字

GET IO_AFTER_GTIDS IO_BEFORE_GTIDS
MASTER_BIND ONE_SHOT PARTITION
SQL_AFTER_GTIDS SQL_BEFORE_GTIDS

Mysql5.7新增保留字

ACCOUNT ALWAYS CHANNEL
COMPRESSION ENCRYPTION FILE_BLOCK_SIZE
FILTER FOLLOWS GENERATED (R)
GROUP_REPLICATION INSTANCE JSON
MASTER_TLS_VERSION NEVER OPTIMIZER_COSTS (R)
PARSE_GCOL_EXPR PRECEDES REPLICATE_DO_DB
REPLICATE_DO_TABLE REPLICATE_IGNORE_DB REPLICATE_IGNORE_TABLE
REPLICATE_REWRITE_DB REPLICATE_WILD_DO_TABLE REPLICATE_WILD_IGNORE_TABLE
ROTATE STACKED STORED (R)
VALIDATION VIRTUAL (R) WITHOUT
XID