mysql5.7.9新特性this is incompatible with sql_mode=only_full_group_by
2018-03-02 09:58
916 查看
mysql5.7.9比之前mysql5.6版本多了些新特性,同时也引发了sql_mode=only_full_group_by问题,这是因为查询时使用了group by引起,错误大概提示如下:
MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'xxxx.x.xxxx' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
今天我也遇到这个问题,网上找了很多资料,大部分方法只是临时解决了,一旦服务器重启,问题又出现了。导到这种报错主要是mysql服务器默认开启了only_full_group_by,只有关闭才可以正常使用分组查询,免得我们一条条去修改sql语句,工作量太大了,也不靠谱。
下面方法是永久的关闭only_full_group_by,在关闭之前,先进入mysql命令查看原先的sql_mode,在原先这个值的基础上去掉ONLY_FULL_GROUP_BY字符串即可。
代码如下
# mysql -u root -p
# 输入密码
mysql> select @@sql_mode;
显示:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
第一个单词就是 ONLY_FULL_GROUP_BY,只要我们在mysqld.cnf配置里去除就可以永久关闭这个模式,具体操作如下:
1、找到mysql的配置文件mysqld.cnf,如果不知道在哪里就使用搜索命令
代码如下
# find / -name mysqld.cnf
2、进入编辑状态
代码如下
# vi /etc/mysql/mysql.conf.d/mysqld.cnf
在 [mysqld] 最底部新增这段代码,意思就是关闭only_full_group_by
代码如下
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
3、保存mysqld.cnf,并重启mysql服务,然后尝试写条含有group by的分组查询语句试试。没问题之后,再重启服务器,在查询试试,相信会令你满意的。
MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'xxxx.x.xxxx' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
今天我也遇到这个问题,网上找了很多资料,大部分方法只是临时解决了,一旦服务器重启,问题又出现了。导到这种报错主要是mysql服务器默认开启了only_full_group_by,只有关闭才可以正常使用分组查询,免得我们一条条去修改sql语句,工作量太大了,也不靠谱。
下面方法是永久的关闭only_full_group_by,在关闭之前,先进入mysql命令查看原先的sql_mode,在原先这个值的基础上去掉ONLY_FULL_GROUP_BY字符串即可。
代码如下
# mysql -u root -p
# 输入密码
mysql> select @@sql_mode;
显示:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
第一个单词就是 ONLY_FULL_GROUP_BY,只要我们在mysqld.cnf配置里去除就可以永久关闭这个模式,具体操作如下:
1、找到mysql的配置文件mysqld.cnf,如果不知道在哪里就使用搜索命令
代码如下
# find / -name mysqld.cnf
2、进入编辑状态
代码如下
# vi /etc/mysql/mysql.conf.d/mysqld.cnf
在 [mysqld] 最底部新增这段代码,意思就是关闭only_full_group_by
代码如下
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
3、保存mysqld.cnf,并重启mysql服务,然后尝试写条含有group by的分组查询语句试试。没问题之后,再重启服务器,在查询试试,相信会令你满意的。
相关文章推荐
- 解决MySQL 5.7.9版本sql_mode=only_full_group_by问题,this is incompatible with sql_mode=only_full_group_by错误
- 解决:mysql 5.7.9 [Err] 1055 ...this is incompatible with sql_mode=only_full_group_by
- [置顶] 【mysql 使用错误解决】this is incompatible with sql_mode=only_full_group_by
- mysql语法错误:this is incompatible with sql_mode=only_full_group_by
- MySQL Error this is incompatible with sql_mode=only_full_group_by
- mysql5.7 命令gruop by报错 this is incompatible with sql_mode=only_full_group_by
- MySQL分组查询时出现错误SELECT list is not in GROUP BY ;this is incompatible with sql_mode=only_full_group_by
- mysql查询报错: ORDER BY clause is not in GROUP BY..this is incompatible with sql_mode=only_full_group_by
- mysql 5.7 this is incompatible with sql_mode=only_full_group_by 问题
- SELECT list is not in GROUP BY clause and contains nonaggregated column this is incompatible with sql_mode=only_full_group_by
- this is incompatible with sql_mode=only_full_group_by
- mysql查询报错: ORDER BY clause is not in GROUP BY..this is incompatible with sql_mode=only_full_group_by
- 报错:this is incompatible with sql_mode=only_full_group_by
- this is incompatible with sql_mode=only_full_group_by
- mysql5.7建表时报错clause is not in GROUP BY..this is incompatible with sql_mode=only_full_group_by
- this is incompatible with sql_mode=only_full_group_by
- 解决 this is incompatible with sql_mode=only_full_group_by Details 问题 3ff0
- [mysql] incompatible with sql_mode=only_full_group_by
- MySQL 5.7.9版本sql_mode=only_full_group_by问题 用到GROUP BY 语句查询时com.mysql.jdbc.exceptions.jdbc4.MySQLSyn
- MySQL 5.7.9版本sql_mode=only_full_group_by问题