项目中本来使用的是mysql5.6进行开发,切换到5.7之后,突然发现原来的一些sql运行都报错,错误编码1055
select * from monitor_cpu_utilization t group by t.object;
解决办法大致有两种:
一:在sql查询语句中不需要group by的字段上使用any_value()函数
当然,这种对于已经开发了不少功能的项目不太合适,毕竟要把原来的sql都给修改一遍
二:
1)window10 下:
紧接 oswebgod 上一章讲解的 不必把my_default.ini 改为my.ini 直接把里面的sql_mode 改过来就可以了
2)linux 下:
修改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
这样可以修改一个会话中的配置项,在其他会话中是不生效的。
最后:
记得更改过my*.ini 或者my*.cnf后重启mysql 重启后记得重启电脑……
以管理员身份运行。
下一节,让oswebgod 带你走进通讯中的websocket…… 了解它的握手机制和http的不同之处……敬请关注