Docker中MySql5.7中only_full_group_by问题的解决方法

2023-04-11 06:23:00 docker mysql5
MySQL5.7中only_full_group_by问题的解决方法 当我们使用MySQL5.7的时候,经常会遇到一个问题:only_full_group_by。当我们执行一个查询语句时,如果查询中包含group by子句,则MySQL会报错: Error Code: 1055. Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 解决方法 方法一:在my.cnf中配置sql_mode 找到my.cnf文件,打开它,在[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' 重启MySQL服务器,查看是否生效。 方法二:在运行查询语句时,通过修改session的sql_mode来解决 可以通过以下命令来查看当前session的sql_mode: show variables like 'sql_mode'; 可以通过以下命令来修改当前session的sql_mode: set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; 方法三:通过修改表的存储引擎来解决 可以通过以下命令来查看表的存储引擎: show create table table_name; 可以通过以下命令来修改表的存储引擎: alter table table_name engine=innodb;

相关文章