Não é possível alterar o Mariadb / Mysql sql_mode

1

Eu tenho um servidor Ubuntu 12.04.3 instalar executando Mariadb e recentemente atualizado para 10.2.9-MariaDB. Desde a atualização anterior, agora tenho um sql_mode parecido com sql_mode = 'STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' , presumivelmente o padrão, mas preciso fazer algumas alterações. Ou seja, descartando NO_ZERO_DATE e potencialmente STRICT_TRANS_TABLES para que um aplicativo funcione novamente.

O problema é que eu adicionei um sql_mode = específico em vários arquivos .cnf (listados na captura de tela), devolvi / reiniciei o servidor mysql depois de cada alteração, devolvi o servidor inteiro e nada! Nenhuma alteração na consulta > SELECT @@GLOBAL.sql_mode global; .

O googl não está ajudando - o que está faltando?

Atualização: Eu finalmente descobri de onde vem a configuração padrão. o /etc/mysql/my.cnf contém sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL . E dado:

TRADITIONAL | Makes MariaDB work like a traditional SQL server. Same as:

STRICT_TRANS_TABLES, STRICT_ALL_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, TRADITIONAL, NO_AUTO_CREATE_USER

O que me diz que a cascata de .cnf NÃO ESTÁ SENDO LIDA como esperado.

    
por CNSKnight 28.11.2017 / 23:24

2 respostas

0

A remoção de TRADITIONAL do valor atualizado do modo de sql resolve e impede que TRADITIONAL seja expandido para STRICT_TRANS_TABLES, STRICT_ALL_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, TRADITIONAL, NO_AUTO_CREATE_USER

    
por 30.11.2017 / 15:37
0

Isso não está respondendo ao OP, mas pode responder à pesquisa do Google de outra pessoa quando ela aparecer nesta página (como acabei de fazer):

Eu tive problemas para definir o modo sql em my.cnf porque havia espaços entre as configurações individuais. Em outras palavras, isso funcionou:

[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"

Isso não aconteceu:

[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" Nota: a linha de modo sql está toda em uma linha - quebra de linha no Stack-Exchange está empurrando-a para uma segunda linha aqui.

Infelizmente o MySQL workbench gerou config para mim com espaços - mas o MySQL não estava me dizendo qual era o problema com my.cnf .

Estou executando o MySQL 5.7 no Ubuntu 18.04

    
por 15.11.2018 / 15:32