Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.1K
Visualizações
No se puede conectar mysql con laravel (docker)

Soy muy nuevo en laravel y docker y trato de conectar mysql al contenedor php (laravel). Pensé en configurar correctamente mi archivo docker-compose.yml y env en el proyecto laravel.

Además, puedo conectarme a mysql db dentro del contenedor.

Aquí hay un error cuando hice la migración de php artesanal:

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

¿Alguien puede saber qué pasó?

docker-compose.yml

 version: '3' services: php: container_name: php build: ./docker/php volumes: - ./myapp/:/var/www nginx: image: nginx:latest container_name: nginx ports: - 80:80 volumes: - ./myapp/:/var/www - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf depends_on: - php db: image: mysql:8.0 container_name: db environment: MYSQL_ROOT_PASSWORD: root1234 MYSQL_DATABASE: myapp MYSQL_USER: docker MYSQL_PASSWORD: docker TZ: 'Asia/Tokyo' command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci ports: - 3306:3306

env

 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=myapp DB_USERNAME=docker DB_PASSWORD=docker
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

finalmente este problema se soluciona. Cambié .env DB_HOST=127.0.0.1 a DB_HOST=db, ¡entonces funciona!

" DB_HOST= nombre de servicio del contenedor mysql en docker-compose.yml "

esta vez, el nombre de mi contenedor mysql es db, por lo que necesitaba DB_HOST para ser db.

over 4 years ago · Santiago Trujillo Relatório

0

Está ejecutando mysql 8, hay consideraciones para el mecanismo de autenticación. Intente agregar lo siguiente al comando de su contenedor mysql:

 --default-authentication-plugin=mysql_native_password

MySQL versión 8.0.4 ha cambiado el mecanismo de autenticación predeterminado de mysql_native_password a caching_sha2_password. El problema es que la mayoría de los clientes aún no han implementado la capacidad de autenticación a través de este mecanismo. En el caso de Laravel, esto depende de PHP, y PHP solo comenzó a soportar esto en v7.4.

Personalmente, aún no he intentado configurar esto en uno de mis proyectos, y no estoy seguro de si Laravel admite esto "listo para usar" todavía.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda