MySQL的TIMESTAMP类型的默认值设置无效。

0 使用环境描述

Linux CentOS 7.8.2003

x86/64bit

MySQL: 5.7.24 (mysql --version / select version())

1 分析

ERROR 1067 (42000) at line 702: Invalid default value for 'CREATE_TIME' :对TIMESTAMP 类型的子段如果不设置缺省值或没有标志not null时候在创建表时会报这个错误

sql_mode中的NO_ZEROR_DATE导致的,在strict mode中不允许'0000-00-00'作为合法日期

2 解决过程

step0 查看sql_mode

mysql> show variables like 'sql_mode';
(或 select @@sql_mode)
+---------------+----------------------------------------------------------------------------------------------------------------------------------
| Variable_name | Value |
+---------------+----------------------------------------------------------------------------------------------------------------------------------
| 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 |
+---------------+----------------------------------------------------------------------------------------------------------------------------------

step1 重置mysql的sql_mode

思路: 将上面的【NO_ZERO_DATE】改为下面的 【ALLOW_INVALID_DATES】

  • 方式1: my.cnf(永久性配置)
cmd: cd /etc/my.cnf

my.cnf: sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  • 方式2: 临时性

退出当前会话后,又将自动恢复为NO_ZERO_DATE

set sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

step2 重启MySQL服务

务必重启,方能保证配置生效。

[root@xufeng ~]# service mysqld restart (或 systemctl restart mysqld[.service])
Redirecting to /bin/systemctl restart mysqld.service

3 参考文献

最新文章

  1. [转]caffe的配置过程
  2. html标签搜索引擎友好度总结
  3. Android开发之bug-No Activity found to handle Intent
  4. A Knight's Journey
  5. Ubuntu 中使用 谷歌日历
  6. coconHashMap实现原理分析
  7. Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom(转)
  8. Java EE (4) -- Java EE 6 Java Persistence API Developer Certified Expert(1z0-898)
  9. JAVA Socket编程(一)之UDP通信
  10. vue 自定义指令directive
  11. 自定义支持多行显示的RadioGroup
  12. Python初学者必看(1)
  13. 【SpringBoot笔记】SpringBoot如何正确关闭应用
  14. Mybatis框架(未完待续)
  15. windows上编译boost库
  16. git之摘抄
  17. [LeetCode&Python] Problem 653. Two Sum IV - Input is a BST
  18. Firedac 数据连接池的应用
  19. MATLAB GUI图片添加背景
  20. SpringBoot_Mybatis_Maven_BootStrap

热门文章

  1. 理解 Shell
  2. springBoot 这货特别火
  3. AcWing 66. 两个链表的第一个公共结点 (2012算法题)
  4. win10 IE浏览器中,设置指定程序查看源文件,设置查看源默认程序
  5. JAVA 学习打卡 day3
  6. 重写org.springframework.beans.BeanUtils的copyProperties方法,能在实体映射的时候把纯数字格式的日期转格式
  7. cider 二面
  8. 安装opencv相关
  9. time命令详解
  10. PHP 文件和文件夹操作