A resposta curta é sim, mas não diretamente. De qualquer forma, eu consideraria reduzir seu MySQL wait_timeout
para algo mais realista como 30 segundos.
O Apache é um servidor web, aceita solicitações de conexão HTTP e retorna conteúdo para o cliente - ele não pode conectar-se nativamente a um banco de dados MySQL.
A fonte mais provável de suas conexões é um aplicativo que gera respostas a essas solicitações, ou seja, PHP, Java, Python, etc - você marcou sua pergunta com php
, então assumirei o PHP aqui.
Agora, supondo que você use o mod_php do Apache em vez do PHP-FPM, então os processos PHP são bifurcados pelo Apache, e assim quando você reinicia o Apache, esses processos são mortos e recuperados. Se você estivesse executando o PHP-FPM, reiniciar o Apache não eliminaria nenhum processo do PHP, já que o FPM é executado como seu próprio daemon.
No caso de um processo PHP ser eliminado via mod_php, ele não chama mysql_close()
para fechar a conexão diretamente, e assim a conexão será mantida aberta por wait_timeout
segundos.
Você pode dizer ao Apache para fazer uma reinicialização "normal" e permitir que os threads existentes saiam antes da finalização, usando service httpd graceful
ou apachectl -k graceful
.
No entanto, se o seu código PHP não estiver fechando a conexão via mysql_close()
, então essa será a fonte final do seu problema e reiniciar o Apache através de qualquer método não resolverá o problema.
Além disso, uma distinção importante a ser feita com restart
vs reload
- o primeiro termina os processos, o último simplesmente recarrega a configuração. Se você realmente deseja encerrar processos, use restart
.