Cómo Solucionar el Error 'mysqli_connect(): Connection refused' en PHP y MySQL

Cómo Solucionar el Error 'mysqli_connect(): Connection refused' en PHP y MySQL
Anuncio relacionado

Introducción

Uno de los problemas más frustrantes para los desarrolladores web que trabajan con PHP y bases de datos relacionales es encontrarse con el mensaje mysqli_connect(): (HY000/2002): Connection refused. Este fallo interrumpe por completo la comunicación entre tu aplicación backend y el servidor de MySQL, impidiendo que el sitio web cargue cualquier información dinámica.

Causas Principales del Error

El error de conexión rechazada suele estar relacionado con fallos de configuración en el servicio de base de datos, credenciales incorrectas o restricciones de red. Las causas más comunes incluyen:

  • El servicio de MySQL/MariaDB se encuentra detenido o no se está ejecutando.
  • La aplicación intenta conectarse a un host (por ejemplo, localhost vs 127.0.0.1) o puerto incorrecto.
  • Restricciones en el archivo de configuración de MySQL (my.cnf o mysqld.cnf) que bloquean las conexiones externas o locales.
  • Credenciales de acceso (usuario, contraseña) erróneas en el script de PHP.

Método 1: Verificar y Reiniciar el Servicio de MySQL

El primer paso y el más común para resolver este problema es asegurarte de que el servidor de base de datos esté activo. Sigue estos pasos en tu terminal (Linux/macOS):

  1. Abre tu terminal y comprueba el estado actual del servicio ejecutando el siguiente comando:
    sudo systemctl status mysql
  2. Si el servicio aparece como detenido o inactivo, inícialo inmediatamente con:
    sudo systemctl start mysql
  3. Para asegurarte de que se ejecute automáticamente tras reiniciar el sistema, habilítalo:
    sudo systemctl enable mysql

Método 2: Comprobar el Host y las Credenciales en el Script PHP

Muchas veces el error ocurre porque PHP intenta buscar el servidor en un socket incorrecto. Cambiar de localhost a 127.0.0.1 suele solucionar este inconveniente de forma inmediata.

  1. Abre tu archivo de conexión en PHP (por ejemplo, conexion.php).
  2. Localiza la función de conexión, que suele tener este aspecto:
    $conexion = mysqli_connect('localhost', 'usuario', 'password', 'base_datos');
  3. Modifica el primer parámetro de 'localhost' a '127.0.0.1' para forzar el uso del protocolo TCP/IP:
    $conexion = mysqli_connect('127.0.0.1', 'usuario', 'password', 'base_datos');
  4. Guarda los cambios y recarga la página en tu navegador web.

Método 3: Revisar el Archivo de Configuración de MySQL (bind-address)

Si tu servidor web y tu base de datos están en máquinas separadas, o si el servicio rechaza cualquier intento de conexión entrante, debes revisar la directiva bind-address.

  1. Abre el archivo de configuración de MySQL con un editor de texto con privilegios de root:
    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
  2. Busca la línea que contiene bind-address. Debería verse así:
    bind-address = 127.0.0.1
  3. Si necesitas permitir conexiones desde cualquier IP (solo recomendado en entornos de desarrollo controlados), puedes comentarla o cambiarla por 0.0.0.0.
  4. Guarda el archivo y reinicia MySQL para aplicar los cambios:
    sudo systemctl restart mysql
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Magento

Cómo Solucionar el Error 'Please Upgrade Your Database' en Magento 2 de Forma Definitiva

Aprende a resolver el error 'Please upgrade your database' en Magento 2 paso a paso. Recupera el acceso a tu tienda online de forma rápida.

Leer guía completa →
Apps

Cómo Solucionar el Error de Sincronización en Google Drive para Escritorio Paso a Paso

Tus archivos no se suben a la nube? Descubre las causas principales del fallo de sincronización en Google Drive para Escritorio y aplica nuestros métodos de solución definitivos.

Leer guía completa →
Mac

Cómo Solucionar el Error de la App Store que no Carga en Mac de Forma Definitiva

Aprende a resolver los problemas de carga y errores de conexión en la App Store de tu Mac. Guía paso a paso para restaurar su funcionamiento.

Leer guía completa →