Mysql5.7或以上版本注意事项

创建于 2022-07-08 / 最近更新于 2022-07-08 / 1323
字体: [默认] [大] [更大]

由于Mysql 5.7或8.0以上版本对 GROUP BY 语法进行了调整,PESCMS部分软件会在上述版本的数据库下出现错误。要解决此问题可以参考如下方法:

一、查看sql_mode

登录数据库,执行如下语句获取当前数据库的sql_mode设置。

SELECT @@sql_mode

根据执行的结果,检查语句结果是否包含ONLY_FULL_GROUP_BY字眼。如图所示:

image.png

二、修改SQL的配置

打开Mysql安装目录,找到my.ini (windows) 或者 my.cnf (linux) 文件(请依据自己软件环境进行定位),使用编辑器打开配置文件。

配置文件存在sql_mode

一般来说,配置文件会包含如下代码:

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,ONLY_FULL_GROUP_BY

若存在上述的代码,将ONLY_FULL_GROUP_BY移除。然后重启Mysql即可。

配置文件没有sql_mode

若不存在,则在当前配置文件任意位置,添加上述语句即可。

sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION

保存并重启Mysql即可。

三、确认成功修改sql_mode

再次登录数据库,执行步骤一的sql语句,确认sql_mode修改成功了。如图所示:

image.png

现在我们在运行PESCMS程序,会发现错误不在出现了。

21 人点赞过