MySql8.0.18下解决this is incompatible with sql_mode=only_full_group_by
JAVA项目本地启动跑数据没问题,链接测试环境数据库报错
报错如下:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'weibao.w.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
本人用的Mysql版本是8.0.18,网上说在my.conf下加一段
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
加了就会报错,启动MySql
Redirecting to /bin/systemctl restart mysqld.service
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
后续尝试了几种方法,mysql高版本直接在mysqld下加
sql_mode ='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'
MySql正常启动,程序也可以正常运行