1001Ferramentas
🐬Dev

docker-compose MySQL

Gera um docker-compose pronto para MySQL, com a senha de root, a porta 3306 publicada e volume persistente. Escolha a tag da imagem e suba o banco local.

YAML

Um MySQL local que sobrevive ao restart

Você precisa de um MySQL para desenvolver e não quer instalar o servidor direto no sistema, com serviço subindo no boot e a versão errada brigando com o outro projeto. Container resolve, mas aí vem a pergunta seguinte: qual a estrutura do docker-compose.yml, que variável de ambiente define a senha e onde os dados ficam guardados quando você derruba tudo.

O arquivo gerado tem um serviço chamado mysql com a imagem na tag que você escolher, MYSQL_ROOT_PASSWORD, a porta 3306 publicada e um volume nomeado mydata montado em /var/lib/mysql. Esse volume é a parte que importa: sem ele, um docker compose down leva o banco junto. Só existem dois campos aqui, versão e senha de root. Apesar do que a descrição sugere, não são gerados MYSQL_DATABASE nem MYSQL_USER.

Se a 3306 já estiver ocupada na sua máquina, mude o lado esquerdo do mapeamento para 3307 e conecte nessa porta. Lembre que as variáveis do MySQL só têm efeito na primeira inicialização, com o volume ainda vazio; trocar a senha depois exige apagar o volume com docker compose down -v. E não commite o arquivo com senha real, mesmo em ambiente local. O YAML é montado no navegador.

Perguntas frequentes

Como crio um banco e um usuário na subida?
Acrescente MYSQL_DATABASE, MYSQL_USER e MYSQL_PASSWORD ao bloco environment. A página não gera essas linhas, e elas só valem na primeira inicialização, com o volume ainda vazio.
Troquei a senha e o container ignorou. Por quê?
O entrypoint do MySQL só aplica as variáveis quando o diretório de dados está vazio. Com o volume já populado, ele apenas inicia o servidor com a senha antiga. Rode docker compose down -v para recomeçar.
Como conecto a aplicação nesse banco?
De outro container na mesma rede do compose, use mysql como host e a porta 3306. Do seu computador, use 127.0.0.1 na porta publicada.

Ferramentas Relacionadas