在安装cacti0.88h的时候。将cacti.sql导入到数据库的时候出现如下错误:
ERROR 1067 (42000) at line 1847: Invalid default value for ‘status_fail_date‘
查看status_fail_date的数据库创建语句:
发现status_fail_date的datetime默认类型是不允许的。查看了mysql 5.7的手册。默认模式为:
The default SQL mode in MySQL 5.7 includes these modes: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, and NO_ENGINE_SUBSTITUTION.
来自 <http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html>
应该是no_zero_in_date,no_zero_date的模式不允许插入。把这两个默认模式去掉就行了。
方法:
vim /etc/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服务。
看下这两个模式是不是没了:
发现no_zero_in_date,no_zero_date模式不存在了。
顺便吐槽下,不按照规范写sql,搞死人。。。