时间:2021-05-23
项目中本来使用的是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这一配置项,想删都没得删。
当然,还有别的办法,打开mysql命令行,执行命令
select @@sql_mode这样就可以查出sql_mode的值,复制这个值,在my.cnf中添加配置项(把查询到的值删掉only_full_group_by这个选项,其他的都复制过去):
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION如果 [mysqld] 这行被注释掉的话记得要打开注释。然后重重启mysql服务
注:使用命令
set sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION这样可以修改一个会话中的配置项,在其他会话中是不生效的。
以上所述是小编给大家介绍的MySQL5.7 group by新特性报错1055的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这儿记录一些在使用MySQL的过程中遇到的问题以及相应的解决办法。sql_mode=only_full_group_by引起groupby查询报错问题MySQL
在上篇文章给大家介绍了Mysql5.7忘记root密码及mysql5.7修改root密码的方法Mysql5.7忘记密码快速且简单的解决方法,具体方法详情如下所示
Windows64位mysql5.7以上版本包解压中没有data目录和my-default.ini和my.ini文件以及服务无法启动的解决办法以及修改初始密码的
mysql5.x升级至mysql5.7后导入之前数据库date出错的解决方法如下所示: 修改mysql5.7的配置文件即可解决,方法如下: linux版:找
MySQL5.7安装学校在学MySQL数据库,老师让我们下来自己去安装,以为可以很快搞定,却搞了一晚上,真是恼火,自己记录一下怎么安装的和遇到一些问题解决办法。