Mudanças entre as edições de "Configurando o Timeout do MySQL"

De Wiki Integrator do Brasil
Ir para: navegação, pesquisa
(Criou página com '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 s...')
 
 
(4 edições intermediárias de um usuário não apresentadas)
Linha 1: Linha 1:
 +
[[File:Banner-wiki-promocoes.gif|center| 700px||border|link=https://www.integrator.com.br/plano-hospedagem-promocionais|Planos promocionais|]]
 +
 +
 +
----
 +
 
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 [[O Erro Broken Pipe ou Communications link failure|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”.
 
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 [[O Erro Broken Pipe ou Communications link failure|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:
 
Abaixo os passos para alterar o tempo limite padrão do MySQL:
Linha 7: Linha 13:
 
2. Edite o arquivo '''my.cnf''' (o arquivo de configuração do MySQL).
 
2. Edite o arquivo '''my.cnf''' (o arquivo de configuração do MySQL).
  
nano /etc/my.cnf
+
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:
 
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<br />
+
<pre>
 +
wait_timeout = 28800
 
interactive_timeout = 28800
 
interactive_timeout = 28800
 +
</pre>
  
 
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.
 
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.
Linha 22: Linha 30:
 
5. Reinicie o MySQL para aplicar as alterações da seguinte forma:
 
5. Reinicie o MySQL para aplicar as alterações da seguinte forma:
  
service mysql restart
+
service mysql restart
  
 
6. Uma vez  a reinicialização concluída, as novas alterações foram aplicadas.
 
6. Uma vez  a reinicialização concluída, as novas alterações foram aplicadas.
  
 
[[Categoria:TUTORIAIS]]
 
[[Categoria:TUTORIAIS]]
 +
[[Categoria:MYSQL]]
 +
[[Categoria:VPS]]
 +
[[Categoria:BANCO DE DADOS]]

Edição atual tal como às 16h05min de 13 de setembro de 2022

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.