Pular para o conteúdo
Início » Laravel » Conexão de bancos de dados do Laravel com Docker Laradock

Conexão de bancos de dados do Laravel com Docker Laradock

This entry is part 3 of 3 in the series Laradock - Tutorial

A conexão é bem direta e intuitiva com os servidores de bancos de dados MySQL ou Mariadb em um projeto PHP Laravel quando se usa contêineres Docker do projeto Laradock.

Porém algumas dicas e lembretes são importantes para evitar que você perca tempo quando estiver preparando seu ambiente de desenvolvimento de uma aplicação Laravel em Laradock que utiliza DBMS.

Neste artigo vou exemplificar além da configuração e conexão, dicas para importar dumps de sql do Mysql ou MariaDB, a partir de seu host para o container Docker desejado.

Também apresento como conectar um cliente de bancos de dados, o DBeaver com o servidor Mysql ou MariaDB rodando no container Docker Laradock.

Além de resolver alguns problemas de conexão com os contêineres de banco de dados usando Docker Laradock em Mac OS (M1 e Pro).

Tutoriais Laradock:

Laradock introdução
Laradock, instalação e configuração
– Conexão de bancos de dados em projeto Laravel com Laradock – este artigo
– Artigos com resolução de erros:
Como resolver erro Laradock e Docker com módulos Python
Erro no LaraDock com Mac Silicon computer (MacBook Pro M1) – Docker Desktop Apache2_1 sai com código 2

Criando e subindo o container de banco de dados com Laradock

O Laradock vem com uma diversidade interessante de contêineres de servidores de banco de dados prontos para serem utilizados. Consulte a lista no artigo Laradock – Containers Docker para seu desenvolvimento PHP e Laravel – Introdução.

Dentre os servidores disponíveis estão o MySQL e o MariaDB.

Para que um container com um destes servidores suba e fique disponível, você deve executar o comando docker-compose up.

Para subir – e construir pela primeira vez que é executado, o MySQL, execute:

docker-compose up -d mysql

Para subir – e construir pela primeira vez que é executado, o MariaDB, execute:

docker-compose up -d mysql

Você pode subir vários contêineres ao mesmo tempo, inclusive ter ambos os servidores rodando ao mesmo tempo, junto com outros serviços como o Apache2, Workspace e Redi:

docker-compose up -d apache2 mysql mariadb workspace redis

# resultado
Starting laradock_redis_1            ... done
Starting laradock_docker-in-docker_1 ... done
Creating laradock_mariadb_1          ... done
Starting laradock_workspace_1        ... done
Starting laradock_php-fpm_1          ... done
Starting laradock_apache2_1          ... done

Desta maneira você poderá acessar os diferentes servidores de banco de dados de acordo com a configuração de conexão do seu projeto PHP Laravel, ou PHP puro.

Conectando o projeto PHP Laravel com o servidor de banco de dados no Docker

Lembre-se de que os contêineres sobem com nomes específicos, veja novamente o exemplo da seção anterior o resultado.

Em nosso exemplo o servidor MySQL chama-se laradock_mysql_1, enquanto o servidor MariaDB chama-se laradock_mariadb_1.

Conectando PHP Laravel com MySQL

Para conectar seu projeto PHP Laravel no servidor MySQL que está rodando no container Docker da configuração Laradock, configure o arquivo .env com as variáveis a seguir:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=nome_do_meu_db
DB_USERNAME=root
DB_PASSWORD=root

Note que a senha do usuário root é definida no arquivo .env do Laradock, e não do seu projeto Laravel.

Conectando PHP Laravel com MariaDB

Para conectar seu projeto PHP Laravel no servidor MariaDB que está rodando no container Docker da configuração Laradock, configure o arquivo .env com as variáveis a seguir:

DB_CONNECTION=mysql
DB_HOST=mariadb
DB_PORT=3306
DB_DATABASE=nome_do_meu_db
DB_USERNAME=root
DB_PASSWORD=root

Note que a senha do usuário root é definida no arquivo .env do Laradock, e não do seu projeto Laravel.

Como conectar DBeaver com MySQL ou MariaDB no Laradock

A conexão do cliente de banco de dados DBeaver com os servidores de banco de dados em um container Docker Laradock diferenciam-se apenas na identificação do host.

Para a conexão no DBeaver, você deve utilizar o caminho ip do localhost: 127.0.0.1, como demonstrado na imagem a seguir:

DBeaver conexão MYSQL e MariDB no Docker Laradock

Como conectar banco de dados no Laradock com Mac M1 e Pro

Um erro comum ao utilizar computadores Mac OS é a impossibilidade de conectar usando o nome do contêiner diretamente, como mostrado acima para Linux Ubuntu, Debian e Mint.

Para resolver basta adicionar o ip 127.0.0.1 apontando para o host desejado, por exemplo mysql, no arquivo /etc/host do Mac.

Um exemplo de arquivo com a inserção para mysql e mariadb:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1	localhost
255.255.255.255	broadcasthost
::1             localhost
# Added by Docker Desktop
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
## Adicione as linhas abaixo
127.0.0.1 mysql
127.0.0.1 mariadb
# End of section

Mantenha-se atualizado

Não esqueça de me seguir no Twitter e assinar o Canal Mazer.dev no Youtube para receber atualizações de novos artigos, vídeo aulas e cursos gratuitos em desenvolvimento e engenharia de software.

Series Navigation<< Laradock, instalação e configuração

1 comentário em “Conexão de bancos de dados do Laravel com Docker Laradock”

  1. Resposta: Laradock - Containers Docker para seu desenvolvimento PHP e Laravel - Introdução - MAZER.DEV

Deixe um comentário

O seu endereço de e-mail não será publicado.

pt_BRPortuguese
%d blogueiros gostam disto: