这是由于MySQL的配置文件阻止了date类型字段值 为'0000-00-00' 无法插入
分析:
登录MySQL后,
通过命令:
select @@sql_mode;
查看当前的SQL-MODE配置
我的如图:
就是图中的NO_ZERO_IN_DATE,NO_ZERO_DATE
这两条配置阻止了插入'0000-00-00'的date类型数据,我们要做的就是删掉这两条
解决:
MySQL的配置文件的位置是:/etc/my.cnf
编辑它
vim /etc/my.cnf
点击i进入编辑模式,如果文件中没有sql-mode,就在最下面加入一条代码(注意:这是我自己的,与上面唯一的变化就是少了我说的NO_ZERO_IN_DATE,NO_ZERO_DATE):
sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
保存:点击ESC退出编辑模式,然后输入 :wq!
最后
重启MySQL服务
service mysql restart
检查MySQL服务状态(是否启动)
service mysql status
如果绿了,恭喜你成功了,
如果红了,同样恭喜你,你的MySQL挂了,更别说什么插入数据建表了,
不过不要紧张,因为我们只是对my.cnf文件添加了一行配置,删掉就好了,
恢复原样之后重新启动MySQL服务应该就没问题了,至于最初的问题,再慢慢捣鼓吧