sql_mode引发的数据库问题
2024-09-21 02:21:47
前几天,在本地做完项目,测试完毕后,上传到线上服务器的时候,在做很多写入数据库的操作时,发现全部发生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
最新文章
- ffmpeg用法及如何使用fluent-ffmpeg
- R语言进阶
- 解决 PHPExcel 长数字串显示为科学计数
- MIT 6.828 JOS学习笔记7. Lab 1 Part 2.2: The Boot Loader
- 京东B2B的4种供销模式
- Linux设备模型——设备驱动模型和sysfs文件系统解读
- Mysql用户密码设置修改和权限分配
- sourceInsight的技巧
- Fire Net HDU 1045
- php变量的引用及函数的引用
- Java设计模式菜鸟系列(七)命令模式建模与实现
- BCM wifi驱动学习
- Hibernate HQL详细说明
- webpack 3.X学习之图片处理
- asp.net后台管理系统-登陆模块-是否自动登陆
- OOA/OOD/OOP
- vs2017 打开附带的localdb v13
- (reverse)Palindromes hdu2163
- Spring获取application.properties
- iPhone投影