mysql8的sql_mode不起作用
如果sql_mode似乎没有起作用,可能是由以下几个原因造成的:
-
配置文件位置不正确:确保
my.ini文件位于MySQL服务器实际读取配置的位置。对于Windows系统,这通常是MySQL安装目录下的bin文件夹。对于Linux系统,它可能位于/etc/mysql/、/etc/my.cnf或~/.my.cnf等位置。 -
MySQL服务未重启:对
my.ini文件所做的任何更改都需要重启MySQL服务才能生效。确保在修改配置文件后已经重启了MySQL服务。 -
MySQL版本问题:
ONLY_FULL_GROUP_BY是在MySQL 5.7.5及更高版本中引入的。如果您使用的是早于这个版本的MySQL,only_full_group_by模式将不可用。 -
会话级别的SQL模式:即使在全局级别(通过
my.ini或my.cnf)更改了sql_mode,用户会话也可以覆盖这些设置。确保没有用户会话在运行时更改了SQL模式。 -
其他配置文件:MySQL可能会从多个位置读取配置文件,包括
/etc/mysql/my.cnf、/etc/my.cnf、C:\ProgramData\MySQL\MySQL Server X.X\my.ini(Windows)等。确保您修改的是正确的配置文件,并且没有其他配置文件在覆盖您的设置。 -
错误的注释:在您的配置中,
#sql_mode=...这一行是被注释掉的,这意味着MySQL不会读取这一行。确保在添加新的sql_mode行时,前面的行是被完全注释掉的,没有额外的空格或字符。
为了验证sql_mode是否已正确设置,您可以登录到MySQL服务器并执行以下命令来检查当前的SQL模式:
SHOW VARIABLES LIKE 'sql_mode';
这将显示当前生效的sql_mode设置。如果ONLY_FULL_GROUP_BY仍然出现在列表中,那么说明sql_mode没有被正确设置。在这种情况下,您应该检查上述提到的可能原因,并确保MySQL服务已经重启。


浙公网安备 33010602011771号