当我们在linux 上使用mysql ,不知道是因为版本原因还是系统原因.错误编码1055,错误信息和sql_mode中的“only_full_group_by“有关,到网上看了原因,说是mysql5.7中only_full_group_by这个模式是默认开启的
解决办法大致有两种:
一:在sql查询语句中不需要group by的字段上使用any_value()函数
二:在linux系统中 修改 mysql 的 sql model 参数:修改方式如下:
1、进入mysql:mysql -uroot -p
2、查看下当前mysql的sqlmodel 是否存在 only_full_group_by
: show variables like '%sql_mode%';
或者 select @@global.sql_mode;
3、如果有则修改掉 这个only_full_group_by:
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULLY_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';