环保网站建设情况报告,如何去除痘痘有效果,中国摄影网官网,怎么做网站广告赚钱一、背景#xff1a;
本来已经正常运行的平台#xff0c;突然有一天由于对服务器进行部分操作迁移#xff0c;发现jar可以正常启动#xff0c;但是访问功能一直报错#xff0c;监控后台日志后#xff0c;发现了问题#xff1a;
报错的具体信息如下#xff1a; Caused…一、背景
本来已经正常运行的平台突然有一天由于对服务器进行部分操作迁移发现jar可以正常启动但是访问功能一直报错监控后台日志后发现了问题
报错的具体信息如下 Caused by: java.sql.SQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column frae.p.id which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_modeonly_full_group_by 二、问题分析
通过对问题的查找分析字面意思理解 SELECT 列表的表达式 #1 不在 GROUP BY 子句中并且包含非聚合列“grades.order_id” 它在功能上不依赖于 GROUP BY 子句中的列 这与 sql_modeonly_full_group_by 不兼容 使用GROUP BY 语句违背了sql_modeonly_full_group_by。因为mysql版本5.7之后默认的模式是ONLY_FULL_GROUP_BY。 查看官方文档发现从 MySQL 5.7.5 开始默认 SQL 模式包括 ONLY_FULL_GROUP_BY。 在 5.7.5 之前MySQL 不检测函数依赖并且默认不启用 ONLY_FULL_GROUP_BY。这可能会导致一些sql语句失效。
三、处理方法
方法一
MySQL查询、设置配置 查看参数SHOW VARIABLES WHERE variable_name like %sql_mode%; 设置参数SET GLOBAL sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION; 刷新配置flush privileges; flush privileges; 按照步骤一理论上就可以解决该问题
方法二
通过更改my.cnf实现。本质上和2是一样的都是关闭ONLY_FULL_GROUP_BY模式
我是通过yum安装的安装手册在这里需要的朋友可以用传送门超详细的yum方式安装mysql_yum在线安装mysql-CSDN博客
如果my.cnf中有sql_mode配置则将ONLY_FULL_GROUP_BY去掉。
如果没有直接编辑 /etc/my.cnf在文件的最后加上
sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 然后重启数据库即可
systemctl restart mysqld.service
然后可以看配置已经更新为更改后的内容然后就可以愉快的使用了 本文推荐使用方法二
https://www.jb51.net/article/251380.htm