zoukankan      html  css  js  c++  java
  • Invalid default value for 'time'

    原因:安装的MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00",出现异常:Invalid default value for 'time',第一次装的5.7,还是有点懵逼的。
    找公司的phper问了一下,然后需要在命令行窗口查看当前的sql_mode配置:
    select @@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, and NO_ENGINE_SUBSTITUTION  

    其中NO_ZERO_IN_DATE, NO_ZERO_DATE两个选项禁止了0000这样的日期和时间。所以在mysql的配置文件中,重新设置sql_mode,去掉这两项就可以了。

    解决办法
    windows系统下:
    使用 SET [SESSION|GLOBAL] sql_mode=’modes’ 注意:SESSION(默认选项):表示当前回话中生效;GLOBAL(需重启):表示全局生效
    也可以修改my.ini配置文件
    SET GLOBAL sql_mode=’ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’
    Linux系统下:
    修改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
    Mac系统下:
    在MacOS中默认是没有my.cnf 文件,如果需要对MySql进行定制,拷贝/usr/local/mysql/support-files/目录中任意一个.cnf 文件。本人copy的是my-default.cnf,
    将它放到其他目录,按照上面修改完毕之后,更名为my.cnf,然后拷贝到/etc目录再重启下mysql就大功告成了。
  • 相关阅读:
    性能优化之无阻塞加载脚步方法比较
    谈谈JS中的函数节流
    JS继承类相关试题
    JS继承之寄生类继承
    JS继承之借用构造函数继承和组合继承
    JS继承之原型继承
    谈谈JS的观察者模式(自定义事件)
    JS图片上传预览插件制作(兼容到IE6)
    前端HTML5几种存储方式的总结
    angularJS实用的开发技巧
  • 原文地址:https://www.cnblogs.com/pfdltutu/p/9019482.html
Copyright © 2011-2022 走看看