5.7版本mysql执行建表语句时报1055错误

数据库 数据库 1005      收藏
5.7版本mysql报错执行建表语句时报1055错误

项目中本来使用的是mysql5.6进行开发,切换到5.7之后,突然发现原来的一些sql运行都报错,错误编码1055,错误信息和sql_mode中的“only_full_group_by“有关,到网上看了原因,说是mysql5.7中only_full_group_by这个模式是默认开启的 。

解决方案:

一:在sql查询语句中不需要group by的字段上使用any_value()函数 
当然,这种对于已经开发了不少功能的项目不太合适,毕竟要把原来的sql都给修改一遍

二:修改my.cnf(windows下是my.ini)配置文件,删掉only_full_group_by这一项 
我们项目的mysql安装在ubuntu上面,找到这个文件打开一看,里面并没有sql_mode这一配置项,想删都没得删。 

三:命令行执行 SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));执行这一句就解决问题了。