问题描述:
在数据库中执行任意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,小心自己建的数据库被格式化删库。
- 其他详见收藏夹。