Mysql5.7数据库 only_full_group_by报错

2018-11-09  本文已影响0人  打不死的小强8号

报错原因

1.mysql 5.7中的sql_mode的值为:
2.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

查看

#登录你的数据库
 mysql -uroot -p 
#执行下面的命令
  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

方案一:(亲测有效,需要重启mysql服务)

修改mysql的my.cnf配置 ,在里面加上下面这段,如果配置里有sql_mode 只需要修改和下面一样就好

sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

centos7 mysql的配置文件修改 ,如下图,并保存

vim /etc/my.cnf
image.png

方案二:(我的没有成功)

#登录你的数据库
 mysql -uroot -p 
#执行下面的命令
  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

# 重新设置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 ';
上一篇下一篇

猜你喜欢

热点阅读