Como Desativar Mode Strict em MySQL ou Mariadb

O que é?

O mode strict do MySQL e do MariaDB controla como os valores inválidos ou ausentes nas consultas de alteração de dados são manipulados; isso inclui instruções INSERT, UPDATE e CREATE TABLE. Com o modo restrito ativado, que é o estado padrão, dados inválidos ou ausentes podem causar avisos ou erros ao tentar processar a consulta.

Quando o mode strict é desativado, a mesma consulta teria seus valores inválidos ou ausentes ajustados e produziria um aviso simples. Este pode parecer o resultado preferido, no entanto, com o mode strict desativado, certas ações podem causar resultados inesperados; por exemplo, quando o valor que está sendo inserido excede o limite máximo de caracteres, ele será truncado para se ajustar ao limite.

Existem várias razões pelas quais o mode strict  pode precisar ser desativado, no entanto, o mais comum é quando um servidor está executando o WHMCS - este é um requisito dessa ferramenta.

Como desativar o mode strict?

 

PASSO 0 - Verifique se o mode strict está ativado:

# mysql -e "SELECT @@sql_mode;"

Se estiver ativo, retornará algo parecido com:

[root@node2 ~]# mysql -e "SELECT @@sql_mode;"
+-------------------------------------------------------------------------------------------+
| @@sql_mode                                                                                |
+-------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------+
[root@node2 ~]#

 

PASSO 1 - Backup

Faça backup das configurações de seu /etc/my.cnf.

cp -a /etc/my.cnf{,.strict.bak}

 

PASSO 2 - Desabilite o Mode Strict

Edite o arquivo /etc/my.cnf.

Localize a diretiva "sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES" e substitua por:

sql_mode=""

 

PASSO 3 - Reinicie seu servidor mysql

# systemctl restart mysql

 

PASSO 4 - Consulte o status do Mode Strict

[root@node2 ~]# mysql -e "SELECT @@sql_mode;"
+------------+
| @@sql_mode |
+------------+
|            |
+------------+
[root@node ~]#

 

 

Referências:

 

  • mariadb, Segurança, mysql
  • 0 Usuários acharam útil
Esta resposta lhe foi útil?

Artigos Relacionados

Subdomínios cPanel: Criar pastas fora do diretório public_html

Em algum momento seu desenvolverdor irá solictar a criação de pastas de subdomínios fora do...

Exim: Guia de comandos SysAdmin

A maioria das vezes precisamos executar comandos no terminal do servidor a fim de agilizar...

Status MySQL cPanel

Em algum momento você precisará visualizar o status de seu serviço MySQL...

Exim: Bloquear ataque ylmf-pc

Ataques de força bruta podem causar grandes transtornos em sua infraestrutura. Na luta...

Engintron: NGINX em servidores cPanel

Engintron para cPanel / WHM é a maneira mais fácil de integrar o Nginx em seu...