mysql设置timpstamp的默认值为 '0000-00-00 00:00:00' 时报错

问题:mysql设置timpstamp的默认值为 '0000-00-00 00:00:00' 时报错:

ERROR 1067 (42000): Invalid default value for 'updateaDate'

原因和解决方法:

# 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 默认是
这个配置,这个配置不允许日期字段的默认值为'0000-00-00 00:00:00',所以改成了下面的配置:

sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_
AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

记得修改完后,重启mysql服务:  /etc/init.d/mysqld restart     或者  service mysqld restart。 两个命令的效果一样。

注:一般在my.ini或my.cnf下配置该sql-mode,

linux下的为my.cnf,其路径一般为 /etc/my.cnf  或 /etc/mysql/my.cnf 或 /usr/my.cnf

win下的是my.ini,一般会在安装目录的根目录.

上一篇:mysql数据库从windows迁徙到linux,或者linux迁移到windows教程-mysql数据库备份


下一篇:[性能优化] perf 高级用法:完整记录程序性能指标,并按照时间段对程序进行有针对性的性能分析