Erro MySql cannot remove mysqld_safe.pid

MySQL

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.

← Voltar para Blog — Artigos sobre PHP, JavaScript e DevOps