Como corrigir Max connections reached no MySQL
O que é o erro Max Connections no MySQL do WordPress?
O MySQL aceita um número fixo de conexões abertas ao mesmo tempo, definido pelo parâmetro max_connections. Quando esse teto é atingido, qualquer nova requisição recebe o erro “Too many connections” e o WordPress não consegue abrir a conexão para carregar a página. Costuma aparecer em horário de pico, em sites com queries lentas que prendem conexões, ou quando o limite do servidor está baixo demais para a demanda.
Como identificar
- Mensagem “Too many connections” no log do MySQL ou na tela durante picos de acesso.
- O site cai intermitentemente em horário de pico e volta sozinho quando o tráfego baixa.
- Junto aparece o erro de conexão com o banco, já que novas conexões são recusadas.
- A lista de processos do MySQL mostra muitas conexões em estado Sleep ou em queries longas.
Antes de começar: Aumente o max_connections de forma proporcional à memória do servidor: cada conexão consome RAM, e um valor alto demais pode fazer o MySQL ficar sem memória e ser encerrado, derrubando o banco inteiro.
Como prevenir
- Use cache de página e de objeto para cortar o número de acessos ao banco em picos
- Monitore queries lentas com o Query Monitor e otimize as que seguram conexões abertas
- Dimensione o max_connections e a RAM do plano de acordo com o pico real de tráfego
Causa
- Parâmetro max_connections do MySQL definido baixo demais para o tráfego do site.
- Queries lentas ou travadas segurando conexões abertas por muito tempo, esgotando o pool.
- Pico de tráfego real ou bots agressivos abrindo conexões mais rápido do que o servidor as fecha.
- Conexões persistentes mal configuradas no PHP que não são liberadas após o uso.
- wait_timeout muito alto deixando conexões ociosas ocupando vagas no limite por tempo demais.
Como resolver
- Confirme o limite atual: no phpMyAdmin (aba SQL), veja o valor de max_connections e quantas conexões estão em uso para saber o quanto folga falta.
- Veja quem está segurando as conexões: rode SHOW PROCESSLIST para identificar queries longas ou muitas conexões Sleep. Conexões presas indicam um plugin ou consulta a otimizar, não só limite baixo.
- Aumente o max_connections: no my.cnf (seção [mysqld]), eleve o max_connections de forma proporcional à RAM do servidor e reinicie o MySQL. Em hospedagem compartilhada, peça o ajuste ao suporte.
- Reduza o wait_timeout: diminua o wait_timeout para que conexões ociosas sejam liberadas mais rápido e não fiquem ocupando vagas no limite.
- Adote cache para cortar acessos ao banco: ative cache de página e de objeto (Redis) para que requisições repetidas não abram novas conexões ao MySQL, reduzindo a pressão no limite.
INI
; Ajustes no my.cnf (secao [mysqld]) - reinicie o MySQL apos editar
[mysqld]
max_connections = 200
wait_timeout = 120
interactive_timeout = 120
Perguntas frequentes
O que significa Too many connections no MySQL?
Significa que o MySQL atingiu o número máximo de conexões simultâneas permitido pelo max_connections e passou a recusar novas. O WordPress não consegue abrir a conexão e a página não carrega até uma vaga liberar.
Por que o erro só aparece em horário de pico?
Porque é nesse momento que muitas conexões são abertas ao mesmo tempo e o limite é atingido. Quando o tráfego baixa, as conexões liberam e o site volta sozinho, por isso a queda parece intermitente.
Basta aumentar o max_connections?
Nem sempre. Cada conexão consome memória, então um valor alto demais pode fazer o MySQL ficar sem RAM. Se o problema é query lenta segurando conexões, aumentar o limite só adia o estouro: é preciso otimizar e cachear também.
Como descubro o que está segurando as conexões?
Rode SHOW PROCESSLIST no phpMyAdmin para ver as conexões ativas. Muitas em estado Sleep apontam wait_timeout alto; queries longas apontam um plugin ou consulta a otimizar.
Estou em hospedagem compartilhada. Posso mudar o max_connections?
Em geral não diretamente, pois o limite é do servidor compartilhado. Abra um chamado com o suporte, mas a solução mais eficaz no seu lado é reduzir acessos ao banco com cache de página e de objeto.
O cache realmente ajuda nesse erro?
Sim. Com cache de página, visitantes recebem HTML pronto sem abrir conexão ao MySQL, e o cache de objeto evita reconsultar dados repetidos. Menos conexões abertas significa menos chance de bater no limite em pico.














