java服务调用mysql报错

一、前言

前端服务调用后端服务时出现以下报错,原因是使用mysql5.7版本数据库中存在ONLY_FULL_GROUP_BY这个配置项导致的不兼容

MySQLSyntaxErrorException: Expression #32 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'demeter_foundation.sorg.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

二、解决

在mysql命令行中执行以下命令(临时更改)

5.7以上版本执行

set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

8.0以上版本执行

set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

更改mysql配置文件(永久更改)

vi /etc/my.cnf

bash 复制代码
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  #5.7以上版本配置此项

sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION   #8.0以上版本配置此项

重新启动mysql服务

systemctl restart mysqld

相关推荐
小杨升级打怪中3 分钟前
前端面经-VUE3篇(二)--vue3组件知识(二)依赖注入、异步组件、生命周期、组合式函数、插件
开发语言·前端·javascript
催眠大树16 分钟前
适配器模式(Adapter Pattern)
java·开发语言·适配器模式
木木子99991 小时前
MySQL中的窗口函数
数据库·mysql
博哥爱学习2 小时前
《Java高级编程:从原理到实战 - 进阶知识篇四》
java·开发语言
DeyouKong2 小时前
Go反射-通过反射调用结构体的方法(带入参)
开发语言·ios·golang
jiunian_cn2 小时前
【c++】模板详解
开发语言·c++·visual studio
-曾牛3 小时前
Java面试:Spring及Spring Cloud技术深度剖析
java·spring·spring cloud·面试·springboot·javaee·面经
工藤新一¹3 小时前
C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 19)
开发语言·c++·游戏引擎·游戏开发·sdl
啊喜拔牙3 小时前
如何在idea中写spark程序
java·spark·intellij-idea
小冯的编程学习之路3 小时前
【C++】:C++17新特性
c语言·开发语言·c++·算法