mysql高版本sql_mode=only_full_group_by问题解决

mysql高版本sql_mode=only_full_group_by问题解决

背景

最近新换了一台电脑,装开发环境的时候装了最新版本的mysql(8.0.16),然后将老版本的数据库拷贝过来,在运行程序的时候经历了驱动jar包的升级,url格式的改变和驱动包路径的改变,最后在一个问题上卡了很久,那就这篇博客的主角sql_mode=only_full_group_by问题。遇到问题照例问了度娘,也是有五花八门的解决办法的
1. 试了改my.ini配置文件的,在最后一行添加sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,但是完全没效果,该怎样还是怎样;
2. 手动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’,重启mysql服务后就失效了

最终解决办法

百度了好久,一直没有一个好的办法,最终只能自己去研究配置文件了。
mysql高版本sql_mode=only_full_group_by问题解决
感觉是不是[mysqld],[mysql],[client]这些标签的原因,之前放在最后面,可能是位置不对,所以就将之前改的配置文件语句sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION放到了[mysql]标签上面一行,重启了服务,成了!!
mysql高版本sql_mode=only_full_group_by问题解决
所以之前的第一种方法只是位置不对,一定要放在[mysqld]标签下(也可以自己在下面新增一个[mysqld]标签)
mysql高版本sql_mode=only_full_group_by问题解决