Invalid default value for timestamp field
MySQL 除错 Debug: Invalid default value for timestamp field
在异动资料库栏位时,发生 timestamp 栏位没办法将预设值设定为 ‘0000-00-00 00:00:00’,表示 资料库的模式(Server SQL Modes)
有 NO_ZERO_DATE
,所以才导致资料库的时间必须依定要指定时间。
检查目前所有的 SQL Mode
在资料库中下查询,查询目前的所有 sql_mode
SHOW VARIABLES LIKE 'sql_mode'
-- ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
确认一下资料库中的 sql_mode 有没有 NO_ZERO_IN_DATE
修正 NO_ZERO_IN_DATE 问题
1. 修改 MySQL 设定档
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
2. 加入 sql_mode 设定
可以将原本的设定全部设定进去,然后把 NO_ZERO_IN_DATE
移除掉即可
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
3. 重新启动 MySQL
sudo service mysql restart