Banco de dados 0 visualizações

Como configurar o modo estrito (strict mode) do MySQL sem quebrar aplicações antigas

Ver no WHMCS

Como configurar o modo estrito (strict mode) do MySQL sem quebrar aplicações antigas

Olá, amigo(a) desenvolvedor(a) ou administrador(a) de site! Seja bem-vindo(a) ao nosso Sensei da GeHost — aqui, aprendemos juntos, com calma, com cuidado, como deixar seu banco de dados mais seguro, sem perder o que já funciona.

Hoje vamos falar de um recurso poderoso do MySQL chamado modo estrito (strict mode). Ele ajuda a prevenir erros de dados, como inserir valores inválidos ou vazios em campos que não aceitam isso. Mas… e se seu site antigo quebrou ao ativar esse modo? Calma! Vamos resolver isso com sabedoria, passo a passo, sem drama.

Dica do Sensei: O modo estrito não é uma "maldição" — é uma proteção. Mas como nem tudo foi feito com essa segurança desde o início, às vezes precisamos ajustar o ambiente para que tudo continue funcionando. É como consertar um carro antigo com um novo sistema de freio: você precisa adaptar, não jogar fora.

Passo 1: Entenda o que é o modo estrito do MySQL

O MySQL, por padrão, aceita certos valores "fracassados" — como inserir um texto vazio em um campo que deveria ter um número, ou um valor muito grande. O modo estrito impede isso, mostrando erros claros quando algo está errado.

Porém, aplicações antigas (especialmente sites de 2010 ou antes) foram feitas pensando que o MySQL era mais "permissivo". Ativar o modo estrito sem ajustes pode fazer o site parar de funcionar com mensagens como:

  • "SQL Error: Invalid value for column"
  • "Cannot insert NULL value"

É por isso que precisamos de um equilíbrio: ativar o modo estrito, mas com ajustes inteligentes para que o sistema antigo não quebre.

Passo 2: Acesse o cPanel (seu painel de controle)

Para fazer as configurações, você precisa entrar no cPanel da sua conta na GeHost. É onde tudo acontece.

Use o link oficial: painel.gehost.com.br

Depois de logar, você verá a tela principal — o home do cPanel.

Tela inicial do cPanel com os grupos de ferramentas: E-mail, Arquivos, Banco de Dados, etc.

Passo 3: Acesse o gerenciador de bancos de dados MySQL

No cPanel, localize a seção Banco de Dados e clique em Bancos de Dados MySQL.

Essa é a tela onde você gerencia todos os bancos, usuários e permissões.

Tela 'Bancos de Dados MySQL' com opções para criar banco, usuário e relacionar

Passo 4: Verifique se o modo estrito está ativo (ou não)

Antes de mudar algo, vamos ver como está o MySQL atualmente.

Para isso, vamos usar um recurso chamado phpMyAdmin — ele está disponível no cPanel, na seção Banco de Dados.

1. Clique em phpMyAdmin (geralmente no mesmo grupo que o MySQL).

2. No menu superior, clique em ServerVariables.

3. Procure por sql_mode na lista.

Se você vir algo como:

  • STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE

… então o modo estrito já está ativo.

Se não tiver nada ou só tiver NO_ENGINE_SUBSTITUTION, o modo estrito está desativado.

Passo 5: Configure o modo estrito com cuidado (para não quebrar o sistema)

Como o MySQL não permite mudar o sql_mode diretamente via cPanel, precisamos fazer isso com um arquivo de configuração personalizado — mas sem mexer no sistema principal.

Para isso, vamos usar um arquivo chamado my.cnf no diretório do seu site. Esse arquivo vai sobrescrever as configurações padrão apenas para o seu banco.

Passo a passo:

  1. Abra o Gerenciador de Arquivos no cPanel.
  2. Navegue até a pasta public_html (ou a pasta raiz do seu site).
  3. Crie um novo arquivo chamado my.cnf (sem extensão).
  4. Abra o arquivo e cole o seguinte conteúdo:
[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL

Importante: Essa configuração ativa o modo estrito, mas mantém compatibilidade com aplicações antigas, pois inclui opções como TRADITIONAL, que são mais rigorosas, mas ainda permitem certos comportamentos legados.

  1. Salve o arquivo.
  2. Reinicie o serviço MySQL (isso é feito automaticamente pelo sistema, mas pode levar alguns minutos).

Dica do Sensei: Se seu site parar de funcionar após essa alteração, desative temporariamente o arquivo my.cnf renomeando para my.cnf.bak. Isso restaura as configurações padrão. Depois, volte aqui para ajustar o que está errado.

Passo 6: Teste com segurança

Depois de ativar o modo estrito com o arquivo my.cnf, faça testes em seu site:

  • Tente fazer login.
  • Envie um formulário.
  • Verifique se há erros no log de erros (acessível via cPanel em Logs).

Se tudo funcionar bem, parabéns! Você está com um banco de dados mais seguro, sem quebrar o sistema antigo.

Se aparecer um erro, abra o phpMyAdmin novamente e veja qual campo está falhando. Muitas vezes, é um campo que aceita NULL ou valor vazio — ajuste o código da aplicação para tratar isso corretamente.

Passo 7: Mantenha o equilíbrio

Ativar o modo estrito é um passo importante para segurança. Mas não é uma "mágica" que resolve tudo.

Seu site antigo pode precisar de pequenos ajustes — como validar dados antes de salvar, ou usar IFNULL() em consultas. Isso é normal. O importante é que você está evoluindo, sem perder o que já é seu.

Palavra do Sensei: Não se preocupe se algo não funcionar no primeiro dia. A tecnologia é como um jardim: você cuida, ajusta, aprende. E com o tempo, tudo floresce. A GeHost está aqui para te ajudar, a qualquer momento.

Quer ajuda?

Se ficar com dúvidas, ou se o erro persistir, entre em contato com nosso suporte — ele está disponível por 30 dias após a entrega da hospedagem.

É só entrar no painel.gehost.com.br, clicar em Contato e nos contar o que está acontecendo. Vamos resolver juntos.

Até a próxima, com muita energia, paciência e código limpo

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.