Ya encontré algunos hilos sobre este tema pero ninguno pudo ayudarme, porque ya hice la solución provista o el problema no era exactamente el mismo que el mío.
Tengo un entorno docker con un servidor nginx/php-fpm, etc. y estoy usando la imagen mysql oficial que estoy vinculando al otro servidor. Este es mi docker-compose
db: image: mysql ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD=symfonyrootpass - MYSQL_DATABASE=symfony - MYSQL_USER=symfony - MYSQL_PASSWORD=symfonypass project: image: docker.io/project/project-dev ports: - "80:80" environment: - XDEBUG_HOST=${LOCAL_IP} - XDEBUG_PORT=9000 - XDEBUG_REMOTE_MODE=req links: - db volumes: - ../project:/var/www/app Cuando lo inicio y me conecto desde mi máquina host de esta manera: mysql -h127.0.0.1 -usymfony -psymfonypass y luego uso use symfony; funciona sin problemas. Veo mi base de datos, puedo editar, eliminar, actualizar, etc. Puedo hacer todo.
Sin embargo, no puedo decir lo mismo de Docker. Estoy usando Symfony y cuando tengo los parámetros configurados correctamente, siempre recibo el error
Ocurrió una excepción en el controlador: SQLSTATE[HY000] [2002] Conexión rechazada
Estos son mis parametros
database_host: 127.0.0.1 database_port: null database_name: symfony database_user: symfony database_password: symfonypass Ya intenté cambiar database_host a localhost pero luego recibí el error No such file or directory with the mismo SQLSTATE. También traté de configurar el puerto en 3306 , pero esto tampoco ayudó.
¿Qué debo hacer para acceder a mi base de datos desde la ventana acoplable?
Esta es la parte en config.yml donde describo mi conexión mysql
doctrine: dbal: driver: pdo_mysql host: "%database_host%" port: "%database_port%" dbname: "%database_name%" user: "%database_user%" password: "%database_password%" charset: UTF8 server_version: "%database_version%"Su base de datos se ejecuta en un contenedor diferente al de su proyecto. Docker-compose le dará una dirección IP y un nombre de host, que es db porque así es como lo nombró. Entonces, database_host no debe ser 127.0.0.1 o localhost, sino db .