Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.1K
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!