mysql中GROUP BY时报错sql_mode=only_full_group_by错误

今天在上正式数据服务器测试软件时突然发生了sql_mode的报错: sql_mode=only_full_group_by。之前在本地库的时候没有遇到过一脸懵逼,在查阅了资(bai)料(du)之后才明白原来是数据库版本为5.7以上的版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错。

首先使用以下查询语句查询是否含有only_full_group_by:

select @@GLOBAL.sql_mode;

然后使用如下sql语句进行sql_mode的更新,去除掉only_full_group_by:

set  @@GLOBAL.sql_mode='';

set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';

这样更新之后在不进行服务器重启时可以一直使用,但是一旦服务器重启之后将会回归原来的样子only_full_group_by一样的存在。

所以对此我们需要对mysql的配置文件my-default.ini (或者my.cnf)进行修改,在里面的[mysqld]下面添加

sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION

实图如下:

 

这样即使重启服务器那么sql_mode一样的不会含有only_full_group_by了,这样就OK了

 --------------------------------------------------------------------------------------分割线-------------------------------------------------------------------------------------------------------------------

个人使用

 

posted @ 2020-05-07 16:02  牧雨  阅读(1401)  评论(0编辑  收藏  举报