我意外启用了ONLY_FUL_GROUP_BY模式,如下所示:
SET sql_mode = 'ONLY_FULL_GROUP_BY';
如何禁用它?
我意外启用了ONLY_FUL_GROUP_BY模式,如下所示:
SET sql_mode = 'ONLY_FULL_GROUP_BY';
如何禁用它?
当前回答
感谢@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',''))"
这对我来说很好。
其他回答
如果任何使用Drupal 8的人在mysql 8中遇到这个问题,我通过添加这段代码覆盖默认配置来解决这个问题。
资料来源:https://www.drupal.org/project/drupal/issues/2856270
选项,以防万一:
'init_commands' => array(
'sql_mode' => "SET sql_mode =''"
)
我使用mysql并注册了root用户,适合我的解决方案如下:
mysql>设置会话sql_mode=(SELECTREPLACE(@@sql_mode,'ONLY_FUL_GROUP_BY','');
试试看:
SET sql_mode = ''
社区注意:正如下面的答案所指出的,这实际上清除了当前启用的所有SQL模式。这不一定是你想要的。
如果您使用的是MySQL 8.0.11,则需要从sql模式中删除“NO_AUTO_CREATE_USER”。
在/etc/mysql/my.cn文件和[mysqld]头中添加以下行
[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
以下是我通过phpmyadmin仪表板更改Mysql配置的解决方案:
为了修复“这与sql_mode=only_full_group_by不兼容”:打开phpmyadmin并转到主页,然后选择“变量”子菜单。向下滚动以查找sql模式。编辑sql模式并删除“ONLY_FUL_GROUP_BY”保存它。