一、 错误原因
Mysql 5.7.5之后,ONLY_FULL_GROUP_BY 变成 sql_mode 的默认选项之一,然而导致一些sql语句查询失败,比如:group by 进行分组查询等
二、解决办法
- 修改 sql_mode
- 查询
select @@global.sql_mode
- 修改
set @@sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
- 注: 至此改变了全局的sql_mode,对已新建的库生效
- 修改已存在的库
- 修改
set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
- 注: 数据库重启后,设置会失效,以上方式仅修改了内存中的值并不是永久改变
阿里云RDS
- 修改配置
- 提交配置