Como Instalar e Configurar o MySQL no Ubuntu 24.04 para Acesso por Containers Docker

Como Instalar e Configurar o MySQL no Ubuntu 24.04 para Acesso por Containers Docker


Você está procurando uma maneira eficiente de integrar seu ambiente MySQL no host Ubuntu 24.04 com seus containers Docker? Seus problemas acabaram! Este guia completo irá te mostrar o passo a passo para instalar o MySQL diretamente no seu sistema operacional e configurá-lo para ser acessível pelos seus serviços Docker, garantindo flexibilidade e performance.

1. Instalação do MySQL no Host Ubuntu 24.04

O primeiro passo é ter o MySQL Server rodando diretamente no seu Ubuntu. Isso garante que você tenha um banco de dados robusto e gerenciável fora do ecossistema Docker, mas ainda acessível por ele.

Para começar, abra o terminal e execute os seguintes comandos:

Bash

sudo apt update
sudo apt install mysql-server -y

Após a instalação, é crucial verificar se o serviço MySQL está ativo e funcionando corretamente.

Bash

systemctl status mysql

Se tudo estiver certo, você verá o status como active (running).

Como Instalar e Configurar o MySQL no Ubuntu 24.04 para Acesso por Containers Docker

2. Configurando o MySQL para Acesso Externo (Containers Docker)

Por padrão, o MySQL no Ubuntu é configurado para escutar apenas em localhost (127.0.0.1) por questões de segurança. Para permitir que seus containers Docker se conectem, você precisa alterar essa configuração para aceitar conexões da rede do host.

Edite o arquivo de configuração principal do MySQL:

Bash

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Dentro do arquivo, procure pela linha:

bind-address = 127.0.0.1

E altere-a para:

bind-address = 0.0.0.0

Essa modificação permite que o MySQL aceite conexões de qualquer endereço IP, tornando-o acessível para seus containers. Salve e feche o arquivo.

Agora, reinicie o serviço MySQL para aplicar as novas configurações:

Bash

sudo systemctl restart mysql

3. Criando um Usuário MySQL com Acesso Externo

Com o MySQL configurado para escutar em todos os endereços, precisamos criar um usuário que tenha permissão para se conectar de qualquer host ou de uma rede específica, como a do Docker.

Acesse o prompt do MySQL como root:

Bash

sudo mysql -u root

Crie um novo usuário com acesso de qualquer host (%):

SQL

CREATE USER 'meuuser'@'%' IDENTIFIED BY 'minhasenha';
GRANT ALL PRIVILEGES ON *.* TO 'meuuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Dica de Segurança: Para uma configuração mais segura, você pode restringir o acesso do usuário apenas ao range de IPs da rede Docker. Geralmente, o Docker utiliza a faixa 172.17.0.%. Neste caso, o comando seria:

SQL

CREATE USER 'meuuser'@'172.17.0.%' IDENTIFIED BY 'minhasenha';
GRANT ALL PRIVILEGES ON *.* TO 'meuuser'@'172.17.0.%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Não se esqueça de substituir 'meuuser' e 'minhasenha' por credenciais seguras.

Testando a Conexão do Container com o MySQL

Com todas as configurações no lugar, é hora de testar se o seu container Docker consegue se comunicar com o servidor MySQL no host.

Dentro de um dos seus containers de backend (por exemplo, um container Laravel ou PHP), você pode instalar o cliente MySQL e tentar a conexão:

  1. Acesse o shell do seu container:
    • Bash docker exec -it nome-do-container-backend bash
  2. Instale o cliente MySQL (pode variar dependendo da imagem base do seu container):
    • Bash apt update && apt install -y mysql-client
  3. Tente conectar ao MySQL usando o IP do gateway Docker:
    • Bash mysql -h 172.17.0.1 -u meuuser -p

Se a conexão for bem-sucedida e você for solicitado a inserir a senha, parabéns! Seu MySQL no host Ubuntu 24.04 está agora totalmente acessível e configurado para seus containers Docker.