Configurando o Timeout do MySQL

De Wiki Integrator do Brasil
Ir para: navegação, pesquisa
Banner-wiki-promocoes.gif





O servidor de banco de dados MySQL possui um tempo limite para conexões abertas, sem uso, de 8 horas. Com o fim do tempo limite do servidor MySQL, podemos ter um enviado ao serviço, sendo que uma conexão foi fechada, gerando erros de broken pipe. A conexão pode ter sido fechada pelo servidor por causa de um comportamento padrão do MySQL; no entanto, em outros casos, é causada por um bug de aplicativo, um problema de tempo limite de rede (em um firewall, roteador, etc.), quando acessado externamente, ou devido ao reinício do servidor MySQL. Raramente o valor wait_timeout causará o problema, e alterando o valor para um maior não corrige o problema. Para os casos em que um aplicativo não consegue fechar uma conexão já não está usando, um valor baixo wait_timeout pode ajudar a evitar o problema com max_connections, simplesmente devido a "sleep" de conexões ociosas que não estão em uma transação e não serão reutilizados. Esse problema pode ser considerado como "vazamento de conexões”.


Abaixo os passos para alterar o tempo limite padrão do MySQL:

1. Entre no servidor SSH como usuário root logado. Clique aqui caso queira saber como acessar o SSH.

2. Edite o arquivo my.cnf (o arquivo de configuração do MySQL).

nano /etc/my.cnf

3. Adicione a configuração de tempo limite para ajustá-lo em sua necessidade no servidor. O padrão é como mostrado abaixo, onde 28800=8horas:

wait_timeout = 28800
interactive_timeout = 28800

O tempo limite interativo não afeta todas as conexões de aplicativos web. Um valor alto de interactive_timeout mas com um wait_timeout baixo é normal e é a melhor prática.

Escolha um valor wait_timeout razoável. Configure o wait_timeout para ser ligeiramente mais longo do que o esperado pelo pool de conexãodo aplicativo. Esta é uma boa verificação de segurança.

4. Salve as alterações e saia do editor. No editor nano, os comandos "Ctrl+x", sem aspas, será o suficiente para sair, onde após suas alterações, ele pedirá o reinicio.

5. Reinicie o MySQL para aplicar as alterações da seguinte forma:

service mysql restart

6. Uma vez a reinicialização concluída, as novas alterações foram aplicadas.