
Em ambientes macOS e Linux, o MySQL pode travar deixando o arquivo
mysqld_safe.pid preso no diretório de dados. Ao tentar reiniciar, o
serviço responde com cannot remove mysqld_safe.pid. Veja como resolver.
1. Identificar o processo órfão
ps aux | grep mysql
Se existir um processo mysqld ativo, finalize-o:
sudo kill -9 <PID>
2. Remover o arquivo PID
sudo rm -f /usr/local/var/mysql/mysqld_safe.pid
Em instalações via Docker, o caminho pode ser /var/lib/mysql/.
3. Corrigir permissões do diretório
sudo chown -R mysql:mysql /usr/local/var/mysql
sudo chmod 755 /usr/local/var/mysql
Sem as permissões corretas o serviço recria o PID com dono incorreto e o problema retorna.
4. Verificar logs
tail -n 50 /usr/local/var/mysql/*.err
Preste atenção em erros de disco cheio ou tablespaces corrompidos.
5. Reiniciar o serviço
brew services restart mysql # macOS
sudo systemctl restart mysql # Linux
No Docker Compose basta rodar docker compose restart mysql.
6. Automação preventiva
Adicione a verificação ao crontab:
*/5 * * * * test -f /usr/local/var/mysql/mysqld_safe.pid && sudo rm -f /usr/local/var/mysql/mysqld_safe.pid
Combine com alertas no Prometheus/Grafana monitorando o tempo que o serviço permanece parado.
Seguindo esses passos o MySQL volta a iniciar corretamente e o arquivo PID não bloqueia novos deploys.