login

Como desabilitar o modo estrito do MySQL?

Por recebermos muitos questionamentos de como desabilitar o modo estrito do MySQL, em geral para a utilização do WHMCS, resolvemos criar este artigo, para acabar de vez com sua dor de cabeça do “STRICT_TRANS_TABLES”.

Vamos partir da premissa que você está utilizando um de nossos servidores cloud (VPS ou Dedicado) e está utilizando cPanel & WHM, mas nada impede que você utilize no seu servidor, em outro provedor.

Desabilitar (ou habilitar) o acesso estrito ao mysql do cpanel.

Lembrando que você precisa estar logado no WHM como ROOT.

1 – Logado no WHM, pesquise por ‘phpMyAdmin’ na caixa de pesquisa e clique nele

2 – Uma vez carregado o phpMyAdmin, clique na guia ‘variables’

3 – procure por ‘modo_sql’

Para ativar o modo estrito digite:

STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION

Para desativar o modo estrito, digite:

NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Se você tem o controle do script que você está utilizando, então é uma boa idéia deixar o modo estrito ativado, pois ele irá alertá-lo sobre quaisquer erros no seu código, antes que eles se tornem um problema.

Simulando que é um servidor executando Centos 7, com MariaDB mas em uma configuração multi-cpanel, então seus clientes não serão capazes de desabilitar estritamente por conta própria, sem receber um erro de permissão. Agora você confere como se desativa globalmente:

Verificando o modo atual no SSH/Console:

Utilize o comando:

# mysql -e "SELECT @@sql_mode;"

Se estiver habilitado, você obterá:

# mysql -e "SELECT @@sql_mode;"


+----------------------------------------------------------------------+
| @@sql_mode                                                           |
+----------------------------------------------------------------------+
|STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, |
|NO_ENGINE_SUBSTITUTION                                                |
+----------------------------------------------------------------------+

Localize e edite o arquivo “my.cnf”

nano /etc/my.cnf

Ou se preferir, também pode utilizar:

vim /etc/my.cnf

Encontre e altere, ou adicione a linha se ela não estiver presente.

Modo estrito ativado:

sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Modo estrito Desativado:

sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Salve o arquivo.

Reinicie o serviço MySQL

Utilize o comando:

/etc/init.d/mysql restart

Ou simplesmente pesquise por “Reiniciar serviços > SQL Server (MySQL)” na barra de pesquisa do WHM. Na tela que abrir, clique em Yes.

Verifique se o modo estrito foi desativado:

Após seguir os passos, verifique novamente para ver se foi desativado, utilizando:

# mysql -e "SELECT @@sql_mode;"

Se estiver desabilitado, você deverá obter:

# mysql -e "SELECT @@sql_mode;"

+--------------------------------------------+
| @@sql_mode                                 |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+

Feito 🙂

Abra o arquivo “my-default.ini” e remova o parâmetro “STRICT_TRANS_TABLES” do valor sql_mode.

Ex: Em localhost xampp, o arquivo está em xampp/mysql/my-default.ini

o valor padrão de sql_mode é como abaixo:

sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

Altere para:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

Resumo

Primeiro de tudo, para desabilitar o modo estrito do MySQL, você precisa de acesso root ao servidor. Se você não tem, você não poderá fazer isso.

Se você tiver apenas acesso ao cPanel, significa que você não é o administrador deste servidor ou não possui acesso root.

Para editar seu arquivo de configuração mysql my.cnf, você terá que acessar seu servidor via SSH (com usuário root ou acesso Sudo) e então editar o arquivo /etc/my.cnf e adicionar a seguinte linha se não estiver presente:

[mysqld]

sql_mode = "TRADICIONAL, NO_AUTO_CREATE_USER"

Depois de editar este arquivo, salve-o e reinicie o serviço mysql.

Esperamos que este artigo tenha sido útil e se você possuir dúvidas, estamos a disposição.

Continue acompanhando o blog da DW Word para mais conteúdos sobre tecnologia, negócios e marketing!

Preencher o meu formulário online.

Fique por dentro das novidades!

Receba tudo em primeira mão.
Cadastrar
Categorias

Fique por dentro das novidades!

Receba tudo em primeira mão.
Cadastrar
close-link
Fique por dentro dos melhores conteúdos para sua presença online
Receba tudo em primeira mão.
Cadastrar
Ao informar seus dados, você concorda com a Política de Privacidade.
Estamos de acordo com a Lei Geral de Proteção de Dados (LGPD).
Close