前言:由于在linux安装了mysql5.7,在需要导入数据时发现报错,说时间默认值不能为0,因为之前用的是mysql5.6 的版本。经过网上百度查找方法,发现是mysql的sql_mode值的问题,于是就前去修改。怕以后忘记所以在此记录。
解决方法:
1,找到mysql的配置文件,我的配置文件在、/etc/mysql/mysql.conf.d/mysqld.cnf
2, 编辑mysqld.cnf 文件,在[mysqld] 下面加上sql_mode= ,如图所示
在这里我需要解释下,因为我查询过sql_mode值 ,语句为selete @@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
而报时间默认值不能为0的罪魁祸首则是NO_ZERO_IN_DATE,NO_ZERO_DATE,这两个属性。然后我把这两个属性去掉,再把值给写入到配置文件里面,这时候又出现了新的问题。group by 又报错了,这让我很无语,然后我直接把sql_mode的值在配置文件里面至为空,如上图所示
。
然后保存退出,在重启。然后在导入sql文件就不会报错了。
在这里记录怕以后忘记,同时希望能够帮助遇到同样问题无法解决的朋友们。