2023-05-10 08:00:02

禁用ONLY_FUL_GROUP_BY

我意外启用了ONLY_FUL_GROUP_BY模式,如下所示:

SET sql_mode = 'ONLY_FULL_GROUP_BY';

如何禁用它?


当前回答

如果任何使用Drupal 8的人在mysql 8中遇到这个问题,我通过添加这段代码覆盖默认配置来解决这个问题。

资料来源:https://www.drupal.org/project/drupal/issues/2856270

选项,以防万一:

'init_commands' => array(
    'sql_mode' => "SET sql_mode =''"
  )

其他回答

感谢@cwhisperer。我在Symfony应用程序中也遇到了同样的问题。我刚刚在config.yml中添加了选项:

doctrine:
    dbal:
        driver:   pdo_mysql
        options:
            # PDO::MYSQL_ATTR_INIT_COMMAND
            1002: "SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))"

这对我来说很好。

试试看:

SET sql_mode = ''

社区注意:正如下面的答案所指出的,这实际上清除了当前启用的所有SQL模式。这不一定是你想要的。

对于Mac OS Mojave(10.14)开放终端

$ sudo mkdir /usr/local/mysql-5.7.24-macos10.14-x86_64/etc
$ cd /usr/local/mysql-5.7.24-macos10.14-x86_64/etc
$ sudo nano my.cnf

粘贴以下内容:

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

保存和退出nano的快捷键:Ctrl+x和y,然后Enter

注意:您可能需要在这些命令中更新mysql-5.7.224-macos10.14-x86_64,只需检查在/usr/local中获得的正确文件夹名称/

希望它能帮助到某人!

添加线条

sql-mode=""

在my.ini文件中作为永久修复。

您可以使用配置文件my.cnf禁用它:

$ mysql --verbose --help | grep my.cnf

因此,在macOS 10.12中,它位于usr/local/etc/my.cnf。您可以在此处编辑sql_mode:

# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"