[DICA] Como instalar o MySQL no Docker e conectar no DBeaver (atualizado 08/2022)

Antes de mais nada, é necessário possuir o Docker já instalado em sua máquina :point_down:

Arch: sudo pacman -S docker
openSUSE: sudo zypper install docker
Solus: sudo eopkg install docker

Ao final do tópico, deixarei alguns links úteis…

  • 1- Com o Docker já instalado e rodando, abra o terminal e faça o pull da imagem: sudo docker pull mysql;

  • 2- Agora, iremos iniciar a instância do MySQL: sudo docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
    (Onde some-mysql é o nome que você quer dar ao container, my-secret-pw a senha que você criou e, onde tem tag você coloca a versão do MySQL, por exemplo → latest);

  • 3- Cheque se o container está ativo: sudo docker ps
    (Caso não, execute sudo docker exec -it (nome do seu container MySQL) bash;

  • 4- Próxima etapa é saber qual o IPAddress do container MySQL, para isso, rode no terminal: sudo docker inspect (nome do seu container MySQL) | grep IPAddress e procure pelo endereço de IP (via de regra será 172.17.0.2, pode variar);

  • 5- Próxima etapa é abrir o DBeaver e adicionar uma conexão com o DB MySQL. Sem muito mistério: New DataBase Connection, Selecione “MySQL” e dê next;

  • 6- Na tela Connect to a DataBase, escreva na caixa de Server Host o endereço de IP do container (172.17.0.2), em DataBase coloque mysql e em password coloque a senha que você escolheu para seu DB MySQL;

  • 7- Selecione Test Connection, baixe o driver JDBC (caso necessário);

  • 7.1- Precisamos também modificar uma propriedade do driver, para que o DBeaver consiga funcionar corretamente com o MySQL instalado via container. Navegue até Driver Preperties e modifique a coluna AllowPublicKeyRetrieval para TRUE;

  • 8- Salve e conecte a instância desejada.

Links úteis e leitura recomendada:

https://hub.docker.com/_/mysql

https://dbeaver.io/

Instalar Docker no Ubuntu

Desativar a inicialização automática do serviço do Docker (Ubuntu)

4 curtidas

Massa demais! Muito bom!

1 curtida