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

316
Visualizações
Conexión MYSQLI rechazada al conectarse a otro contenedor docker que ejecuta MariaDB

Estoy empezando a ensuciarme las manos con Docker y estoy tratando de hacer que mi aplicación PHP se ejecute en un contenedor docker con nginx para conectarme a la base de datos que se ejecuta en otro contenedor que ejecuta MariaDB.

Cuando ejecuto los contenedores, puedo conectarme sin problemas a la base de datos desde mi computadora (usando Sequel Pro), pero cuando intento conectarme a la base de datos desde la aplicación PHP que se ejecuta en el contenedor nginx, aparece el siguiente error de mysqli:

Advertencia: mysqli_connect(): (HY000/2002): Conexión rechazada en >/app/web/php/db-config.php en la línea 7 No se pudo conectar a la base de datos, murió con error:

El db-config.php donde ocurre el error es el siguiente:

 define('DB_HOST', '0.0.0.0:3306'); define('DB_NAME', 'Jumpooling'); define('DB_USER', 'root'); define('DB_PASSWORD', 'root'); $con=mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die('Failed to connect to the database, died with error:');

Todo el contenido del archivo docker-compose.yml está en este repositorio.

¿Qué me estoy perdiendo?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Logré encontrar la solución en esta respuesta.

El problema era que el host no debía definirse como una dirección IP sino con el nombre de enlace que se le da en el archivo docker-compose.yml , es decir, db .

El db-config.php final es, por lo tanto:

 define('DB_HOST', 'db'); define('DB_NAME', 'Jumpooling'); define('DB_USER', 'root'); define('DB_PASSWORD', 'root'); $con=mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME, 3306) or die('Failed to connect to the database, died with error:');
over 4 years ago · Santiago Trujillo Relatório

0

No se requieren enlaces para permitir que los servicios se comuniquen; de forma predeterminada, cualquier servicio puede llegar a cualquier otro servicio en el nombre de ese servicio.

Se podrá acceder a los contenedores para el servicio vinculado en un nombre de host idéntico al alias, o al nombre del servicio si no se especificó ningún alias.

over 4 years ago · Santiago Trujillo Relatório

0

Debe especificar el contenedor/navegador de puertos explícitamente como -p 3306:3306:

 docker run --name mysql-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=secret -d mysql:latest
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