项目启动报了一个错:
which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
翻译过来就是:mysql中group by 后面的字段必须在前面的查询中 用到
因为mysql 5.7.28的版本 默认是开启 only_full_group_by
此时需要做的是:
use mysql; (选择mysql数据库)
select @@sql_mode; 查询sql模式
如果有only_full_group_by
则删除之:
set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
再重新查询一次:
select @@sql_mode;
此时会发现only_full_group_by
字段已经被删除了
重启应用删除缓存 会发现之前的错误荡然无存了
mysql 貌似不能重启 重启会重新初始化貌似 大家试试
mysql5.7版本中 没有在安装目录下生成my.ini文件 需要自己创建;
其中内容如下:
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]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
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的安装目录
basedir=D:\Environments\MySQLServer5.7
datadir=D:\Environments\MySQLServer5.7\Data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
对号入座,其他设置可以参考这里
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。