Não é possível se livrar do sql_mode ONLY_FULL_GROUP_BY no Ubuntu 16.04

1

Não é possível se livrar do sql_mode ONLY_FULL_GROUP_BY no Ubuntu 16.04

Estou tentando remover o sql_mode = ONLY_FULL_GROUP_BY de maneira persistente. Emitindo o seguinte comando eu posso fazer isso para esta sessão

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))

Depois tentei removê-lo permanentemente modificando /etc/mysql/my.cnf /etc/mysql/mysql.cnf /etc/mysql/mysql.conf.d/mysqld.cnf adicionando uma seção

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

No entanto, quando eu reinicio o mysql, o modo ONLY_FULL_GROUP_BY está lá. Estou ficando sem opções.

Alguém pode fornecer um pouco de luz aqui? Obrigado.

    
por mosh442 27.11.2016 / 17:01

2 respostas

2

A única coisa que funciona para mim é editar /lib/systemd/system/mysql.service:

# MySQL systemd service file

[Unit]
Description=MySQL Community Server
After=network.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
PermissionsStartOnly=true
ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
# Normally, we'd simply use:
# ExecStart=/usr/sbin/mysqld
ExecStart=/usr/sbin/mysqld --sql-mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
ExecStartPost=/usr/share/mysql/mysql-systemd-start post
TimeoutSec=600
Restart=on-failure
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755
    
por 28.04.2017 / 09:33
0

Dependendo da sua distribuição do mysql, o /etc/mysql/my.cnf já deve ter a seção [mysqld]. Eu procuraria em arquivos my.cnf * e verificaria se o sql_mode já está lá. Qual versão do mysql você está usando?

    
por 30.11.2016 / 00:04