一 ERR 1067引发的血案
今天在Navicat中运行sql语句创建数据表出现了错误Err 1067。而这条语句在有些同事的mysql上是正确的,但是在有些人那里就报错。
QQ截图20170811143551.png
原因竟然是timestamp的默认值不正确。
查阅资料得知,mysql5.7版本中有了一个STRICT mode(严格模式),而在此模式下默认是不允许设置日期的值为全0值的,所以想要解决这个问题,就需要修改sql_mode的值。
二 问题的源头sql_mode
我们可以进入到mysql中一探sql_mode的究竟。首先进入到mysql的安装目录下的bin目录,使用管理员用户登录mysql数据库。
使用命令 mysql –h localhost –u root –p 其中-h是指定主机名或IP地址, -u是指定用户, -p是使用密码登录。
QQ截图20170811141126.png
使用命令 select @@sql_mode; 可以查看sql_mode的值。如果输入了命令却没有反应,只是单单出现了-> ,那么我想你多半是应该像我一样,没有输入 “;”。