Mysql5.7 出现 this is incompatible with sql_mode=only_full_group_by 解决方案

问题描述

今天写了一个sql 执行的时候遇到了this is incompatible with sql_mode=only_full_group_by。

原因分析

通过查阅资料发现是因为下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的类似 group by语句就报错,然后又把它移除了。就可以了。

解决方案

第一个方案

  • 在您的数据库中执行
SET @@global.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 文件路径。当然打开my.ini 文件 添加刚才的配置到文件中如下:

[mysql]
default-character-set=utf8
[mysqld]
port = 3306
# Binary Logging
log-bin=mysql-bin
binlog-format=Row
#Server ID
server-id=201901
#basedir=D:\MySQL\mysql-5.7.14-winx64
#datedir=D:\MySQL\mysql-5.7.14-winx64\data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
skip-grant-tables
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTI

然后保存退出。重启启动mysql 服务。在您的数据库执行
SELECT @@global.sql_mode 发现没有ONLY_FULL_GROUP_BY 这个模式。
这时候你在执行你的sql 就发现爱没问题。

你可能感兴趣的:(mysql)