[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
john maicon
Criador john maicon 07/09/2021

Boa noite, beleza?

Esta sempre dando erro ao tentar rodar migrate..

Eu entro dentro do container e rodo os comandos artisan como cache, funciona, gerar chave KEY, porém migrate, não funciona.  Imagino que tenha algum erro de conexão.. 

Illuminate\Database\QueryException 

  SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = micro_01 and table_name = migrations and table_type = 'BASE TABLE')

 

Manager Carlos Ferreira 07/09/2021

Olá, John!
Beleza, e com você?

Está usando o mesmo setup de Docker do curso amigo?
Tem o projeto no GitHub?

Todos os seus containers estão de pé, inclusive o de banco de dados?
docker ps -a

Carlos Ferreira
Criador john maicon 07/09/2021

Bom dia,

 

Esta mesmo setup, mesmo docker-compose, dokerfile... e todos containers em pé...

https://github.com/john-maicon/LARAVEL-MICROSERVICES---RABBITMQ

 

 

john maicon
Manager Carlos Ferreira 07/09/2021

A sua variável DB_PASSWORD no arquivo .env está com um valor diferente, certo?
Se estiver acessando com o usário root, e não definir no arquivo docker-compose.yml a variável MYSQL_ROOT_PASSWORD o valor para a senha root default é root

environment:
    MYSQL_ROOT_PASSWORD: outrasenharoot

Carlos Ferreira
Criador john maicon 07/09/2021

Bom dia, segue meu .env


DB_CONNECTION=mysql
DB_HOST=db_micro_01
DB_PORT=3308
DB_DATABASE=micro_01
DB_USERNAME=root
DB_PASSWORD=123456789

docker-compose.yml

# mysql micro 01
db_micro_01:
image: mysql:5.7.22
#container_name: db
restart: unless-stopped
#tty: true
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_USER: ${DB_USERNAME}
#SERVICE_NAME: mysql
volumes:
- ./.docker/mysql/dbdata:/var/lib/mysql
ports:
- 3308:3306
networks:
- microservices

Erro ainda persiste

 

 

john maicon
Criador john maicon 07/09/2021

Mudei valor da senha, mas nada deu efeito rsrs

john maicon
Manager Carlos Ferreira 07/09/2021

A variável DB_PASSWORD precisa estar com o valor root:
DB_PASSWORD=root

Ou, fazer o que te falei, no arquivo docker-compose.yml a variável MYSQL_ROOT_PASSWORD o valor para a senha do usuário root é root

environment:
    MYSQL_ROOT_PASSWORD: outrasenhadoroot

Carlos Ferreira
Criador john maicon 07/09/2021

Boa tarde, 

 

Eu alterei para você ver, mas estava root, esta igual no video, na aula, deve ser outro problema. Não sei se te entendi bem, mas no meu .env, a senha é root.. Voltei e nada ainda...

 

DB_CONNECTION=mysql
DB_HOST=db_micro_01
DB_PORT=3308
DB_DATABASE=micro_01
DB_USERNAME=root
DB_PASSWORD=root

 

MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_USER: ${DB_USERNAME}
john maicon
Criador john maicon 07/09/2021

OPs, tava fazendo teste, e mandei errado print.. 

 

No .env ta certinho como no print acima e abaixo a correção (erro ::  MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD})

Correto é 

  environment:

MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_USER: ${DB_USERNAME}
john maicon
Manager Carlos Ferreira 07/09/2021

Como alterou o arquivo docker-compose.yml precisa recriar os containers:
docker-composer down

docker-compose up -d

---

Eu testei o seu projeto aqui, e deu certo amigo, apenas com esse detalhe.

Se deixar o usuário root e senha root, vai funcionar com sucesso.

Ou, se criar um usuário não root:
DB_USERNAME=outrouser

Aí pode colocar a senha que quiser:
DB_PASSWORD=root

---

Faz o seguinte amigo, o seu projeto está com a porta 3308 exposta, usa o MysqL Workbench pra se conectar:
host: localhost
user: root
password: root

Se der certo, está ok.

Carlos Ferreira
Criador john maicon 07/09/2021

Bom dia,

 

Tava quase tudo certo, problema era a porta, eu coloquei 3308 e também coloquei 3308 no .env, isso fazia dar o erro. Eu conseguia conectar pel adminer, ferramenta de interface, agora no .env deixei a porta 3306 e funcionou. Também testei com mysql 8 e deu erro, pesquisando e vendo os logs, era user e senha root dava conflito, coloquei no .env user admin e senha admin com a porta 3306 e no arquivo de configuração do docker da mesma forma e tudo funcionou... 

Maravilha.. 

 

Obrigado!

john maicon
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!