当前位置:   article > 正文

[博学谷学习记录]超强总结,用心分享|软件测试之MySQL报错1055解决_sql执行错误1055

sql执行错误1055

       

目录

一、报错问题描述:

二、报错问题原因:

三、解决报错的思路:

四、解决方案:

        本周开始学习数据库相关知识,首先学习的是建表操作。检查了很多次,确定代码无误,且刷新了很多次,都没有成功出现新建的表格。于是向老师求助,在断开链接数据库又重新链接数据库后,出现了新建的表格。后又重复尝试执行命令,insert插入数据、update更新数据、delete删除数据,此类语句都会报错1055,非常苦恼,影响日常使用,所以第一次尝试自己查询网上的方法并独立解决问题。同时也把自己查询的原因及解决办法记录下来,供大家参考。

一、报错问题描述:

在MySQL数据库查询下,执行SQL建表命令或插入数据命令。错误提示示例:

二、报错问题原因:

在MySQL 5.7以后,sql_mode中默认设置中有ONLY_FULL_GROUP_BY,SQL句子未通过ONLY_FULL_GROUP_BY词义查验,因此导致了报错。

ONLY_FULL_GROUP_BY规定select句子中查询出的列必须是确立的(其他语句也是如此)。

三、解决报错的思路:

解决报错的方法有两种:第一种便是把这类限制除掉,让我们的SQL语句像5.7版本之前的那样能跑。第二种就是修改sql:依照规定要求的标准重新写整个项目中全部会报错的sql。很明显的是,第二种方法会带来很大的复杂度,而且万一某个SQL语句改写不到位,会继续报错,所以这种方案也具有一定的风险。

因此,我们最好是选择第一种方式,试试看能否将此类限制永久的去掉,这样以后使用过程中更为方便。而如何去掉,请仔细查看以下解决方案。

四、解决方案:

1.永久解决

1)在MySQL下执行语句SELECT @@sql_mode

2)将查询结果中的ONLY_FULL_GROUP_BY除掉随后拷贝,找到MySQL的配置文件并打开,将sql_mode的值设定为拷贝的值

(若沒有sql_mode在[mysqld]正下方加上一行就可以)。

MySQL配置文件所在位置:安装版可根据windows服务相匹配的mysql开机启动项,查询其相匹配的属性->exe文件的路径,获得my.ini文件的路径。

免安装版一般在其根目录下。(默认文件名是my-default.ini,务必将其改成my.ini才可以起效)。

3)再次开启MySQL服务即可生效

2.暂时关掉ONLY_FULL_GROUP_BY

1)首先,利用用管理员身份运行cmd,进到到mysql的安装路径下的bin文件目录,用管理员账号登录mysql数据库。

2)随后输入命令mysql –h localhost –uroot –p在其中-h是特定IP地址或IP地址,-u是特定客户,-p是指用登录密码。

3)然后输入命令select @@global.sql_mode;能够查询全局sql_mode的值。请注意:这里的“;”是不可以省去的。

4)再键入 set @@global.sql_mode = (select replace(@@global.sql_mode,‘ONLY_FULL_GROUP_BY’,’’));执行后就可以修改@@global.sql_mode。

5)最后再次连接一下数据库,执行语句,就不会报错了。但是注意:这种方法是一次性的,只能解决一次,如果重启数据库,它又会再次报错的。

以上就是对于MySQL 1055报错的总结和解决的方案,希望能够解决你的问题。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/899498
推荐阅读
相关标签
  

闽ICP备14008679号