Entrei no meu servidor para verificar o status do banco de dados e notei SHOW PROCESSLIST;
que há um grande número de conexões adormecidas que são muito antigas.
Qual deve ser a duração do limite de tempo de conexão antes que a conexão seja encerrada?
Como defino o limite de tempo no MySQL 5.0.51a-3ubuntu5.4?
Observação:
Estou usando PHP 5.2.xe framework symfony 1.2.
mysqld
irá expirar as conexões de banco de dados com base em duas opções de servidor:Ambos são 28.800 segundos (8 horas) por padrão.
Você pode definir essas opções em
/etc/my.cnf
Se suas conexões são persistentes (abertas via
mysql_pconnect
), você pode diminuir esses números para algo razoável como 600 (10 minutos) ou até 60 (1 minuto). Ou, se seu aplicativo funcionar bem, você pode deixar o padrão. Isso depende de você.Você deve configurá-los da seguinte forma em
my.cnf
(entrar em vigor apósmysqld
ser reiniciado):Se você não deseja reiniciar o mysql, execute estes dois comandos:
Isso não fechará as conexões já abertas. Isso fará com que novas conexões sejam fechadas em 180 segundos.