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.
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.
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 Server → Variables.
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:
- Abra o Gerenciador de Arquivos no cPanel.
- Navegue até a pasta
public_html(ou a pasta raiz do seu site). - Crie um novo arquivo chamado
my.cnf(sem extensão). - 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.
- Salve o arquivo.
- 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.cnfrenomeando paramy.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