前几天,在本地做完项目,测试完毕后,上传到线上服务器的时候,在做很多写入数据库的操作时,发现全部发生500报错,返回的报错信息是,某个字段没有默认值,写入的时候没有添加这个字段,该字段在数据表中是NOT NULL并且无默认值,导致插入失败。

  查询原因是从本地上传服务器项目时,服务器数据库由原来的5.6升级为5.7,mysql配置文件中的sql_mode配置中STRICT_TRANS_TABLES这个配置在限制写入库。

  STRICT_TRANS_TABLES(存储引擎启用严格模式,非法数据值被拒绝):

  启用这个就会报错,所以修改sql_mode去掉STRICT_TRANS_TABLES,测试了一下恢复正常。

  先在数据库查询sql_mode:

SELECT @@GLOBAL.sql_mode;

  发现sql_mode中含有STRICT_TRANS_TABLES。

  然后在自己的服务器中打开mysql.conf(泛指数据库配置文件)加入下面这一行:

sql_mode='NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

  总结:在设计数据库的时候,要严谨添加字段,如果设置某个字段不为null时,要给该字段添加上默认值,这样也不会发生写入的时候报错的问题。

  by as

最新文章

  1. ffmpeg用法及如何使用fluent-ffmpeg
  2. R语言进阶
  3. 解决 PHPExcel 长数字串显示为科学计数
  4. MIT 6.828 JOS学习笔记7. Lab 1 Part 2.2: The Boot Loader
  5. 京东B2B的4种供销模式
  6. Linux设备模型——设备驱动模型和sysfs文件系统解读
  7. Mysql用户密码设置修改和权限分配
  8. sourceInsight的技巧
  9. Fire Net HDU 1045
  10. php变量的引用及函数的引用
  11. Java设计模式菜鸟系列(七)命令模式建模与实现
  12. BCM wifi驱动学习
  13. Hibernate HQL详细说明
  14. webpack 3.X学习之图片处理
  15. asp.net后台管理系统-登陆模块-是否自动登陆
  16. OOA/OOD/OOP
  17. vs2017 打开附带的localdb v13
  18. (reverse)Palindromes hdu2163
  19. Spring获取application.properties
  20. iPhone投影

热门文章

  1. A计划 hdu2102(BFS)
  2. 笔记-python-内存管理
  3. Python虚拟机类机制之从class对象到instance对象(五)
  4. 动态加载css,js
  5. Helloworld 在jvm 内存图
  6. 图说不为人知的IT传奇故事-4-王安用一生来跟IBM抗衡
  7. 引用其他头文件时出现这种错误,莫名其妙,error C2065: “ColorMatrix”: 未声明的标识符
  8. 嵌入式之download
  9. php 实现栈与队列
  10. Leetcode 557.反转字符串中的单词III