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

331
Views
intento de conexión mysqli falló después de unos 20 segundos

Estoy tratando de configurar un servidor web en casa, usando XAMPP v3.2.2, que se ejecuta en una tableta con Windows 10 de 32 bits.
Tiene:
-Apache/2.4.38 (Win32)
- PHP Versión 7.3.2
- mysql Ver 15.1 Distrib 10.1.38-MariaDB, para Win32 (AMD64)

La configuración de DNS para mi dominio incluye un registro A, que apunta a mi dirección IP externa (asignada por el ISP y la misma durante años), tanto para www.mydomain.mytld como para @.mydomain.mytld .

El reenvío de puertos para el puerto 80 al servidor se configuró en mi enrutador.

El archivo httpd.conf de Apache incluye una sección:

 <VirtualHost *:80> ServerName www.mydomain.mytld ServerAlias *.mydomain.mytld </VirtualHost>

En MySQL, el nombre de usuario del username de la base de datos tiene privilegios SELECT , DELETE , INSERT y UPDATE para la base de database a la que se accede desde localhost .

En el archivo .php me conecto a la base de datos usando:

 $dbUrl = "127.0.0.1"; $dbUser = "username"; $dbPass = "password"; $dbName = "database"; $db = new mysqli($dbUrl, $dbUser, $dbPass, $dbName);

Esto funciona bien cuando accedo a esto en el propio servidor (usando http://127.0.0.1/ ).
También funciona bien cuando accedo al mismo desde otra computadora en la red doméstica usando la dirección de red del servidor ( http://192.168.178.35/ ).
También funciona bien cuando accedo al mismo desde otra computadora en la red doméstica usando mi dirección IP externa (asignada por el ISP).

Pero... cuando intento lo mismo usando mi nombre de dominio, falla: "Advertencia: mysqli::__construct(): (HY000/2002): Un intento de conexión falló porque la parte conectada no respondió correctamente después de un período de tiempo, o la conexión establecida falló porque el host conectado no respondió". en la instrucción $db = new mysqli(...

Probé localhost e incluso la dirección de red del servidor ( 192.168.178.35 ) para $dbUrl , y también intenté incluir el número de puerto 3306 , todo fue en vano.
Probé el usuario root con todos los privilegios también, los resultados siguen siendo los mismos.

Otras páginas en el mismo servidor (tanto .html como .php) que no usan la base de datos, funcionan bien usando mi nombre de dominio.

En algún lugar de Internet encontré que tal vez esto podría resolverse comentando (con un # ) la línea ::1 localhost en el archivo %WINDIR%\system32\drivers\etc , pero esa línea ya está comentada en mi archivo de hosts.

Dado que todo funciona bien usando mi dirección IP externa, simplemente no usando mi nombre de dominio, espero que simplemente me falten algunas directivas en algún lugar de uno de los muchos archivos de configuración, pero no puedo encontrar lo que me falta.

¿Alguna idea, alguien?
Gracias por adelantado.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

He encontrado el problema.

Estúpido, supervisé un código obsoleto que alteró el valor de la variable $dbUrl, según la información de $_SERVER["SERVER_NAME"], entre la declaración de asignación y la creación del objeto mysqli. Eliminé el código antiguo y ahora funciona perfectamente.

Gracias a todos los que se tomaron el tiempo de leer este problema y perdón por hacerles perder el tiempo.

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!