MySQL no Docker reiniciando automáticamente como resolver
![MySQL no Docker reiniciando automáticamente como resolver](/content/images/size/w1200/2023/02/1_p3cYVYA9Gj8oCEf5tkkuow.png)
Se você está sofrendo com o MySQL dentro de um container Docker então este post é para você. Resolvi escrever por que eu já passei pelo mesmo problema e a saída mais simples eu resolvi detalhar e colocar em um guia de recuperação de bancos de dados MySQL mortos pós-migração.
- Identificando o problema
O primeiro passo para resolver este tipo de problema é ver os logs do MySQL dentro do container. Você consegue ficar escutando os logs do Docker através do comando:
docker logs -f container-mysql
O mais comum principalmente quando você migra o MySQL de servidor é dar problema na cópia do mysql.sock que fica dentro da base database do MySQL.
No exemplo abaixo você encontra um problema de mysql.sock não encontrado, isto faz com que o MySQL não inicie corretamente e fique reiniciando.
![](https://www.jaccon.com.br/content/images/2023/02/image.png)
- Resolvendo o problema
A forma mais fácil para resolver este problema é você fazer um backup do diretório database ou renomeie para database_backup e crie um novo.
Finalize o container do MySQL e coloque para rodar novamente, verifique se o status dele está iniciado. Se sim faça um dump do banco de dados em um arquivos por exemplo backup.sql e salve dentro do diretório database/data.
Entre dentro do container Docker utilizando o comando:
docker exec -it container-mysql /bin/bash
Depois de entrar no container execute o comando:
mysql -u root -p
adicione a sua senha para logar no MySQL. Depois disto você pode entrar no banco de dados aqui no meu exemplo appDb:
use appDb;
source backup.sql;
Veja que no primeiro comando da linha acima nós selecionamos o banco de dados
e na segunda linha nós carregamos o arquivo do dump do banco de dados backup.sql
Depois dos dados carregados é interessante que você reinicie o container e veja o comportamento dele se ele irá parar de reiniciar ou não.