Configurando Docker com MySQL no Arch Linux e conectando ao Workbench 👨🏽‍💻
Tags: mysql, docker, archlinux, workbench
Published: 2023-12-25 17:04:35

Enquanto configurava minha máquina com Arch Linux, percebi que o [MySQL Server](https://medium.com/r/?url=https%3A%2F%2Fdev.mysql.com%2Fdownloads%2Fmysql%2F) não existia mais nos repositórios da distro desde 2013 (e [aqui](https://medium.com/r/?url=https%3A%2F%2Farchlinux.org%2Fnews%2Fmariadb-replaces-mysql-in-repositories%2F) está o motivo), ficando em seu lugar o [MariaDB](https://medium.com/r/?url=https%3A%2F%2Fmariadb.org%2F). Embora o MariaDB seja praticamente 100% compatível com a sintaxe do MySQL, ainda há pequenas coisas que não são. Para quem prefere o MySQL e não deseja ter de compilar o código fonte ou não quer instalar diretamente os binários genéricos, eis como instalar com o Docker.

_Nota: Esse tutorial foi escrito após algumas pesquisas para o meu caso em particular durante as aulas das matérias Banco de Dados I e II na universidade._

###Instalando o Docker

Caso não possua o Docker instalado, primeiro atualize a lista de pacotes e os pacotes em si:

```
sudo pacman -Syu
```
Agora instale o Docker
```
sudo pacman -S docker
```


![Docker com status active](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c0x7fz94w2ctcdc73iwf.png)

Caso no lugar de "active" apareça "inactive (dead)", inicialize-o com

```
sudo systemctl start docker
```

###Criando um container com MySQL

Agora que temos o Docker instalado, podemos executar os comandos referente a ele. Primeiramente devemos baixar a imagem do MySQL. Usaremos a versão mais recente com a flag "latest"

```
sudo docker pull mysql:latest
```

![Instalação da imagem MySQL](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zl7itk0r3b2y0l8a6nas.png)


Você pode conferir os detalhes da imagem com o comando
```
sudo docker images
```


![Imagens instaladas](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k8kclsjxapbd3f3653g4.png)

Agora vamos criar um novo container com base na imagem que baixamos anteriormente
```
sudo docker run --name mysqlbd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
```

![Inicializando o container MySQL](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xuirv3zjw7g3t0r44wep.png)

Lembrando que:

- `mysqlbd` é o nome do nosso container (você pode escolher qualquer nome que seja fácil para você)
- `-p` é o parâmetro para definir qual porta utilizaremos (no caso, 3306)
- `MYSQL_ROOT_PASSWORD=root` define que o usuário e senha sejam 'root'
- `mysql` ao final define qual é a imagem base para o nosso container

Você pode conferir se o container esá em execução usando o comando
```
sudo docker ps
```

![Container executando](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pmpwvlfvm39pqfwj5cyp.png)

###MySQL Workbench

Agora a parte mais simples que é conectar no nosso Workbench. O nosso container está sendo executado em localhost, ou seja, no IP 127.0.0.1

![MySQL Workbench](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/25fisk3hemd4vac9hq1q.png)



Ao clicar em 'Test connection' iremos receber uma mensagem de sucesso:

![Sucesso](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q1u4ztoh1x95hxo7efm5.png)

Agora você pode brincar com seu container MySQL para seus estudos e testes :)

![MySQL Workbench](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ecbhvvmxqq93yl2bhzof.png)


Caso queira parar o container, execute
```
sudo docker stop nome_do_container
```
No nosso caso:
```
sudo docker stop mysqlbd
```
Se você escolheu outro nome e não se lembra, basta executar sudo `docker ps -a`

###Conclusão
Agora você aprendeu a baixar uma imagem MySQL, criar um container e se conectar a ele localhost. O próximo passo é usar esse docker para uma conexão local ou até mesmo via IP pela internet.

Sucesso e abraço 👋