DEV Community

Cover image for How to start a MySQL Instance with Podman
Gabriel Dias Mazieri
Gabriel Dias Mazieri

Posted on

How to start a MySQL Instance with Podman

Como configurar uma instância de MySQL em um container podman.

Esse guia não é exclusivo da distribuição Ubuntu, a partir do momento que você instalou o podman na sua distribuição os passos são muito similares.

Leia este 4Noobs https://github.com/rluders/containers4noobs/blob/main/pages/install-linux.md para mais informações sobre o Podman no ambiente linux.

E aproveite para conhecer mais sobre containers em: https://github.com/rluders/containers4noobs/blob/main/README.md

  • Instale o podman no Ubuntu 22.04, abra seu terminal e dê o comando:
sudo apt-get -y update
sudo apt-get -y install podman
Enter fullscreen mode Exit fullscreen mode
  • Ao final da instalação, certifique de ter instalado corretamente, dê o comando:
podman --version
Enter fullscreen mode Exit fullscreen mode
  • Baixe uma imagem MySQL via podman.
podman pull docker.io/library/mysql
Enter fullscreen mode Exit fullscreen mode
  • Perceba que o comando que baixa uma imagem utiliza o domínio do docker.
    • Veja também que no lugar de “mysql” podemos colocar qualquer imagem disponível no domínio do docker, por exemplo: “mongo”.
  • Ao finalizar o download podemos visualizar as imagens baixadas, dê o comando:
podman ps
Enter fullscreen mode Exit fullscreen mode
  • Inicie uma nova instância do MySQL, dê o comando:
podman run -dt -e MYSQL_ROOT_PASSWORD=<SenhaDoUsuárioRoot> \
-e MYSQL_USER=<NomeDeUsuário> -e MYSQL_DATABASE=<NomeDoBanco> \
--name <NomeDoContainer> -p 3306:3306 mysql:<Tag>
Enter fullscreen mode Exit fullscreen mode

Explicando o comando acima:

Leia mais em: https://docs.podman.io/en/latest/markdown/podman-run.1.html

  • A flag -dt diz para esse container trabalhar em segundo plano e também aloca um pseudoterminal a ele.
  • No lugar de "< SenhaDoUsuárioRoot >" coloque uma senha que o usuário root do seu container utilizará, por exemplo: MYSQL_ROOT_PASSWORD=root
  • No lugar de "< NomeDeUsuário >" coloque o nome de usuário do mysql desejado, no meu caso será grandehe4rt.
  • No lugar de "< NomeDoBanco >" coloque o nome do banco de dados desejado para o projeto que estará trabalhando.
  • No lugar de "< NomeDoContainer >" você pode preferir colocar o nome do projeto que você está utilizando.
  • No lugar de "< Tag >" você pode optar por usar as tags disponíveis pelo próprio docker para imagens MySQL, prefira sempre a versão mais estável e recente, opte pela tag “latest” ficando então mysql:latest.

A partir do momento que você executar esse comando você terá um container MySQL funcional na porta 3306 do host local.

  • Execute o comando:
podman exec -it <NomeDoContainer> /bin/bash
Enter fullscreen mode Exit fullscreen mode

Aqui você irá iniciar o pseudoterminal do seu container como usuário root.

  • Você pode certificar de que é o usuário root em seu container MySQL rodando o comando:
whoami

> root
Enter fullscreen mode Exit fullscreen mode
  • Execute o comando em seguida insira a senha que você definiu no passo anterior (MYSQL_ROOT_PASSWORD):
mysql -uroot -p
Enter fullscreen mode Exit fullscreen mode
  • A partir daqui você tem acesso total ao banco de dados do seu container/projeto.

Passos que talvez não seja obrigatório para todos:

Caso você tenha problemas do tipo:

  • MySQL Public Key Retrieval is not allowed.

Ao se conectar ao banco de dados via DBeaver.

Faça o seguinte no DBeaver:

1- New Database Connection

Passo1

2- MySQL Database.
3- Next.

Passo2e3

4- Preencha o nome do seu banco de dados fornecido no passo anterior (MYSQL_DATABASE)
5- Preencha a senha do usuário root do mysql fornecido no passo anterior (MYSQL_ROOT_PASSWORD)
6- Modifique a configurações de Driver da conexão.

Passo4_5e6

7- Navegue até “Driver properties”
8- E adicione 2 novas propriedades
8.1. allowPublicKeyRetrieval = true
8.2. useSSL = false
9- OK

Passo7_8e9

  1. Clique em test connection, a partir daqui é esperado que funcione normalmente, e ao final você terá uma conexão com seu banco de dados que está instanciado em seu container podman.

Dúvidas, Sugestões e Feedbacks são apreciados.

Me siga nas redes sociais:

Top comments (1)

Collapse
 
lorexp profile image
Vinicius da Palma

Muito obrigado pela ajuda!!!