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

236
Views
Solicitud HTTP de una aplicación Laravel en un host virtual Apache a una aplicación Lumen en hosts virtuales hermanos: MySQL Acceso denegado para el usuario 'root'@'localhost'

Tengo un problema muy extraño con las aplicaciones Laravel y Lumen en hosts virtuales WAMP. En resumen, el problema es que las credenciales de la base de datos de la aplicación Laravel las sobrescriben en la aplicación Lument durante una solicitud HTTP. Esto hace que la aplicación Lumen arroje un error de Access denied de MySQL.

Mi configuración

Estoy bajo WAMP en mi máquina de desarrollo local, dos hosts virtuales establecidos. Uno para la aplicación Laravel (por ejemplo, laravel.localhost , aplicación web), otro para la aplicación Lumen ( lumen.localhost , servicio web, API). Ambas aplicaciones se sirven a través de hosts virtuales Apache desde diferentes carpetas del disco duro.

Ambas aplicaciones tienen diferentes configuraciones .env . En la aplicación Laravel, la configuración de la base de datos no está configurada (se mantiene una predeterminada, sin usar una base de datos). En la aplicación Lumen, se configuró el acceso a la base de datos a una base de datos específica. Ambos usan la parte de configuración de base de datos predeterminada:

 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306

pero, por supuesto, diferentes nombres y credenciales de DB.

Access denied for user 'root'@'localhost'

El problema surge tan pronto como desde el navegador (!) o desde Postman (!) Realizo una solicitud HTTP desde laravel.localhost a lumen.localhost . Recibo una solicitud en el lado de la aplicación Lumen y me conecto a DB. Luego, aparece el error SQL Access denied for user 'root'@'localhost' .

Si inspecciono la conexión de la base de datos en el lado de la aplicación Lumen ( config('database.connections.mysql') ), muestra las credenciales de la base de datos del lado de la aplicación Laravel, lo cual es una gran sorpresa para mí.

Por supuesto, como la aplicación Lumen tiene diferentes credenciales de base de datos, las credenciales de base de datos de la aplicación Laravel provocan el error Access denied .

Otro lado de este efecto es que si pongo las credenciales de la base de datos de la aplicación Lumen en la aplicación Laravel .env la solicitud HTTP se realiza sin errores.

Comportamiento extraño

Todo esto me hace pensar que estas dos aplicaciones de alguna manera comparten el mismo PHP o PDO o cualquier entorno en el que se mantenga la configuración de Larevel DB. Y este comportamiento es muy extraño.

Por el contrario, si realizo las mismas solicitudes HTTP desde mis pruebas de PHPUnit desde la aplicación Laravel a la aplicación Lumen, no hay problema.

Borrar los cachés de Laravel no ayuda. Las credenciales de la base de datos de la aplicación Laravel no se almacenan en caché. Puedo cambiarlos antes de cada solicitud y se filtran en el lado de la aplicación Lumen "con" la solicitud.

¿Alguien puede ayudar?

over 4 years ago · Santiago Trujillo
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!