问题描述:
在数据库中执行任意update语句,更新可以成功,有受影响的行,但是就是报1055错误,百度来百度去还是下面这篇文章解释得最好,推荐给大家:
https://my.oschina.net/ChinaHaoYuFei/blog/2046070

在数据库中可以查询一下自己的sql_model是如何设置 的:
- 你可以用该语句查看:
select @@global.sql_mode; - 也有人用该语句查看:
show variables like "sql_mode";
查过之后确实存在ONLY_FULL_GROUP_BY这一值。
解决办法:
可参考这篇博文:https://blog.csdn.net/lizhiyuan_eagle/article/details/93087320#commentBox
最好的办法都说找my.ini,该文件一般在你的mysql根目录下(绿色版自己新建的,本教程是根据绿色版自己建的my.ini的解决方案),然后没有的自己补上下面这句:
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
- 注意!!!一定要把
sql_mode=...补在[mysqld]下,否者mysql无法识别sql_mode=...,导致修改my.ini不起作用,网上没有什么人强调这个,博主在这里强调一下!!! - 如果已存在上述需要修补的语句,就把
sql_mode中ONLY_FULL_GROUP_BY这一值删去即可。 - 控制台键入
net stop mysql回车,再键入net start mysql重启mysql即可(不要错把重启Navicat当成重启mysql)。
博主的my.ini配置文件补上的结果展示:
不单只补sql_mode=...,还有一句[mysqld]在它头上,这样才有效。

再次强调:
my.ini修补sql_mode=...时,要补在[mysqld]下!!!!
my.ini修补sql_mode=...时,要补在[mysqld]下!!!!
my.ini修补sql_mode=...时,要补在[mysqld]下!!!!
- 不要重新初始化mysql,小心自己建的数据库被格式化删库。
- 其他详见收藏夹。
修复MySQL ONLY_FULL_GROUP_BY错误

本文详细介绍了如何通过修改my.ini文件中的sql_mode参数,解决MySQL中因ONLY_FULL_GROUP_BY设置引起的1055错误。包括如何检查当前sql_mode设置,如何正确修改my.ini文件,以及重启MySQL服务的方法。

被折叠的 条评论
为什么被折叠?



