Atualizei nosso servidor para o Ubuntu 16, que inclui o Mysql 5.7 e, por padrão, o Strict Mode está ativado (embora não haja entrada para ele em nenhum dos arquivos de configuração).
Estamos tendo problemas para importar bancos de dados que estavam em produção no mysql 5.6 e versões anteriores, e é por causa do modo estrito. Por padrão, aqui está o que está ativado:
STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY
Como posso configurar o mysql 5.7 para funcionar exatamente como no 5.6 ou para que os bancos de dados do 5.6 sejam compatíveis com o 5.7?
Respostas:
Para desativar o modo SQL estrito, faça o SSH no servidor como
root
e crie este arquivo:Abra o arquivo e digite estas duas linhas:
Reinicie o MySQL com este comando:
Essa alteração desativa duas configurações do modo SQL
STRICT_TRANS_TABLES
eONLY_FULL_GROUP_BY
foram adicionadas no MySQL 5.7 e causam problemas para alguns aplicativos mais antigos.A confirmação do modo SQL restrito está desabilitada
Você pode confirmar que o modo estrito do SQL está desabilitado executando este comando como
root
:Se o modo estrito estiver desativado, você não verá nenhuma saída desse comando.
Se a desativação do modo estrito causar problemas para você, você pode ativá-lo novamente, excluindo esse arquivo e reiniciando o MySQL novamente.
Fonte: Como desabilitar o modo SQL restrito no MySQL 5.7
fonte
mysql: [ERROR] Found option without preceding group in config file /etc/mysql/conf.d/disable_strict_mode.cnf at line 1!
:?Situado
sql_mode
em/etc/mysql/mysql.conf.d/mysqld.cnf
semSTRICT_TRANS_TABLES
.Adicionar em
[mysqld]
:fonte