Plesk only_full_group_by错误

时间:2018-06-18 17:26:47

标签: mysql plesk plesk-onyx

版本:Plesk Onyx v17.8.11_build1708180301.19 操作系统:Ubuntu 16.04.4 LTS

在我的日志中出现此错误:

  

AH01071:收到错误'PHP消息:PHP致命错误:未捕获异常   带有消息'SQLSTATE [42000]的'PDOException':语法错误或访问   违规:1055 SELECT列表的表达式#7不在GROUP BY子句中   并包含非聚合列'base.count_traffic.type'   在功能上不依赖于GROUP BY子句中的列;这是   与

中的sql_mode = only_full_group_by'不兼容

mysql -V - > mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper

SQL_MODE设置为:NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

在另一台服务器上的相同设置和相同的Pleask版本都在运行,但就此而言,没有!

1 个答案:

答案 0 :(得分:0)

这与MySQL中的sql_mode行为有关。您需要在全局和会话中更改此参数,然后删除only_full_group_by

SET GLOBAl sql_mode = 'NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

在会议上:

SET session sql_mode = 'NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

请注意,对于数据库中的现有连接,这不会产生任何影响。该配置仅适用于新连接。如果需要,您可以编辑my.cnf并重新启动数据库。这是一个例子:

[mysqld]
sql-mode='NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'