在进行项目开发过程中遇到一个问题,在本地执行可以,发布到测试Server出现SQL Exception,经过查看异常,发现确实是书写的SQL/JPQL/HQL存在问题,在使用group by方法的select后面没有保证所有字段均使用聚合函数或者出现在group by后,这个问题在MySQL中为可配置,通过sql_mode参数。
0.通过如下语句查看
select @@sql_model;
1.通过如下语句进行设置(重启后失效)
SET [GLOBAL|SESSION] sql_mode='modes'
2.通过配置文件进行设置,在MySQL运行时指定的配置文件中添加如下配置
sql_mode='modes'
PS:之前没有具体看过MySQL的配置文件,甚至这次出现这个问题,我都不知道去哪里更改设置,开始是直接找到MySQL下的my-default.ini进行更改,发现不起作用,最后通过任务管理器Service的详细信息,可以看到在启动时具体指定的配置文件,在其中添加后,就可以了。
查看MySQL默认参数:
mysql --help | grep Default -A 1