解决Linux系统mysql插入数据报异常'Incorrect integer value: '' for column 'id' at row 1'

第一篇博客

解决Linux系统mysql插入数据报异常’Incorrect integer value: ‘’ for column ‘id’ at row 1’

Created by @一个前端er 2020/02/22
前端菜鸟一枚,欢迎各位大佬对本博文批评指正

参考博客(文章/文献):
mysql严格模式的开启、关闭
官网开发文档:MySQL 5.7 Reference Manual

这是笔者的第一篇博客,希望以后能多抽出点时间出来写一写博客,总结一下最近所学,遇到的坑,也为其他Coders提供便利,促进与大家之间的沟通。

安装的mysql版本
闲话少述,直接说我是如何遇到并解决这个错误的吧,我在Linux服务器上装的mysql版本是>>>mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper,也就是5.7.29,之前花了10块钱在阿里云上买了半年的数据库试用,最近数据库快到期了,我花费了一下午的时间在我的linux服务器上安装了mysqld服务(实属菜鸟),并把云数据库中的数据拷贝到自己的服务器上,昨天发现插入数据的时候报了错:

Incorrect integer value: ‘’ for column ‘id’ at row 1’
(result) => console.log(‘mysql 开启了严格模式’)

然后就开始了疯狂的百度,前几条搜索结果都大差不差:
解决#1366 - Incorrect integer value: ‘’ for column ‘id’ at row 1
提示去找my.ini这个文件并修改这个配置文件即可,然后我就用Linux命令各种找:

whereis my.ini
find / -name my.ini
find /-name “my.ini”

就是没找到,后来看到一篇文章(我就不贴了),提示登录mysql,然后执行语句来取消mysql的严格模式,mysql的严格模式规定了插值的时候所有的字段键值都要输入。大家都设置了id为自增,所以插入的时候没有指定id的值导致报错。结果我设置了sql_mode之后重启了mysql还是不行,依然提示报错,我也进行了各种尝试:插入的时候给id附上空字符串或者是null,依然提示报错。后来又找了一些文章看了看,发现linux上的mysql根本就没有my.ini这个配置文件,而是my.cnf这个文件,我的linux系统是centos 7.5,my.cnf的默认位置是在/etc/my.cnf。

cat /etc/my.cnf
解决方案就是在这个文件底下加上一行配置:

sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

取消mysql的严格模式,然后保存退出,重启一下mysql就生效了!开心!

附上基本的Linux修改文件的命令:

查看文件内容:cat /etc/my.cof
编辑文件内容:vim /etc/my.cof
进入编辑模式:按 i 键
退出编辑模式: 按 Esc 键
保存并退出:同时按住 Shift 键 和 ; 键 出现冒号,然后输入 wq 即可退出
重启mysqld:service mysqld restart

我是一枚菜鸟 @一个前端er ,下篇博客见 。

猜你喜欢

转载自blog.csdn.net/qq_41777791/article/details/104443050