Modo Estrito do MySQL Preso em

3

Após a atualização para o MySQL 5.5 a partir do Remi-DB (CentOS 6), estamos tendo um problema em que a cada reinicialização nosso servidor SQL se ajustará de volta ao modo estrito:

mysql> SELECT @@GLOBAL.sql_mode;
+--------------------------------------------+
| @@GLOBAL.sql_mode                          |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+

Então eu corro o comando:

    mysql> SET GLOBAL sql_mode="";
Query OK, 0 rows affected (0.00 sec)

E isso funciona bem para a sessão, mas ao reiniciar esta mudança é perdida (eu também tentei definir o sqlmode "SET SESSION" também.

Também gostaria de observar que tentei isso também nos arquivos my.cnf .

A única solução viável é codificar um arquivo init para executar o SET GLOBAL sql_mode no reinício, mas isso é incômodo, irritante e irracional, deve haver uma maneira de fazer isso funcionar logo de cara.

Eu tentei uma reinstalação do servidor SQL sem sucesso. (Mas eu retomei os dados de um backup, claro, já que este é um servidor de produção).

    
por Matthew Salsamendi 06.03.2013 / 04:16

3 respostas

10

Isso também me mordeu no Percona Server v5.5.30-30.1-log.

Veja:     link

e verifique um arquivo /usr/my.cnf ou similar ($ MYSQL_HOME / my.cnf) que possa ter sido criado por mysql_install_db.

Isso estava substituindo nossa configuração sql_mode em todos os nossos outros arquivos de configuração.

    
por 27.03.2013 / 17:21
2

Adicione isto no seu my.cnf e reinicie o MySQL. Certifique-se de que não há outra linha depois para sobrescrevê-lo.

Substitua sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

com

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

às vezes, adicionar linhas abaixo pode funcionar também. Tente acima primeiro e, se não funcionar, tente isso.

sql-mode=""

ou

sql-mode="TRADITIONAL"
    
por 06.03.2013 / 16:18
0

Eu sei que isso é antigo, mas caso alguém precise disso:

Eu estava conseguindo isso com o MySQL Server 5.6 no Windows 7 x64.

Acontece que ele carrega um arquivo my.ini aqui:

C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

Mesmo que o MySQL tenha sido instalado e executado a partir daqui:

C:\Program Files\MySQL\MySQL Server 5.6

Alterando o modo sql em ProgramData ini para o seguinte, em seguida, reiniciar o MySql resolveu o problema:

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 
    
por 11.12.2014 / 15:57