🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo solucionar el error 'Connection refused' en MySQL para WordPress

Actualizado el 17 de diciembre de 2025

Encontrar el error “Connection refused” en MySQL al intentar acceder a WordPress es como llegar a tu casa y descubrir que la llave no gira en la cerradura. Sabes que la puerta es la correcta, pero algo impide la entrada. No te preocupes, es uno de los problemas más comunes en el hosting y, por suerte, casi siempre tiene una solución clara y paso a paso.

Este error se manifiesta de varias formas: a veces WordPress muestra un mensaje crítico indicando que no puede establecer una conexión con la base de datos, otras veces aparece un código de error específico como ERROR 2002 (HY000): Can't connect to local MySQL server through socket, o simplemente ves una página en blanco. En este artículo, vamos a desglosar las causas más frecuentes y, lo más importante, cómo solucionar el error connection refused mysql wordpress sin necesidad de ser un experto en servidores.

Vamos a empezar por lo básico: el error “Connection refused” significa literalmente que tu solicitud para conectarte al servidor de base de datos fue rechazada. No es que la contraseña sea incorrecta (eso daría un error diferente), sino que el servidor MySQL no está escuchando en el puerto o la dirección que esperas. Es un problema de comunicación, no de autenticación.


¿Por qué ocurre el error "Connection refused" en MySQL?

Antes de lanzarnos a ejecutar comandos, es fundamental entender qué está pasando. Imagina que MySQL es un restaurante. El puerto (normalmente el 3306) es la puerta principal. Si la puerta está cerrada con llave, o si el restaurante está cerrado por reformas (servicio detenido), nadie podrá entrar, y el mensaje que recibirás será “Connection refused”.

Las causas más comunes son:

  • El servicio MySQL no está corriendo: Es la causa más habitual. El servidor de bases de datos está apagado o se ha bloqueado.
  • El servidor está escuchando en una dirección incorrecta: MySQL puede estar configurado para escuchar solo en localhost (127.0.0.1) y tu script intenta conectarse a una IP externa, o viceversa.
  • El puerto está bloqueado por un firewall: El firewall del servidor (como CSF o iptables) puede estar bloqueando el puerto 3306 para conexiones externas.
  • El archivo de configuración de WordPress tiene datos incorrectos: Aunque no es un “refused” puro, a veces la dirección del servidor de base de datos (DB_HOST) está mal escrita, apuntando a un servidor que no es.
  • Problemas con el socket de MySQL: En servidores Linux, MySQL a veces usa un socket de archivo local. Si la ruta del socket es incorrecta, verás este error.
  • El servidor está saturado o ha alcanzado el límite de conexiones: En casos extremos, MySQL rechaza nuevas conexiones porque ha llegado a su límite máximo de conexiones simultáneas.

Primeros pasos: Diagnóstico rápido

No te asustes. Vamos a hacer una inspección rápida para saber exactamente dónde está el problema. Te recomiendo seguir este orden lógico.

1. Revisa si el servicio MySQL está activo

La forma más rápida de saber si MySQL está funcionando es intentar conectarte directamente a él desde la terminal de tu servidor (si tienes acceso SSH) o desde el administrador de archivos de tu panel de control.

Si tienes acceso SSH, escribe:

systemctl status mysql

O si usas MariaDB (muy común en hosting):

systemctl status mariadb

Si el servicio está inactive (dead) o failed, ese es el origen del problema. La solución es arrancarlo:

systemctl start mysql

Y para asegurarte de que se inicie automáticamente al reiniciar el servidor:

systemctl enable mysql

[INFO] Si no tienes acceso SSH, la mayoría de los paneles de control como cPanel o Plesk tienen una sección para “Servicios” o “Estado del Servidor”. Busca MySQL o MariaDB y verifica que esté en ejecución.

2. Verifica la dirección y el puerto de conexión

WordPress guarda la información de conexión en el archivo wp-config.php, ubicado en la raíz de tu sitio. Dentro de ese archivo, busca estas líneas:

define( 'DB_HOST', 'localhost' );
define( 'DB_NAME', 'tu_base_de_datos' );
define( 'DB_USER', 'tu_usuario' );
define( 'DB_PASSWORD', 'tu_contraseña' );

El valor de DB_HOST es crucial. La mayoría de las veces es localhost, pero a veces el hosting te da un hostname específico como mysql.tudominio.com o una IP. Si está configurado como localhost pero tu hosting usa un servidor de base de datos remoto, tendrás el error.

[TIP] En cPanel, el hostname de la base de datos suele ser localhost si estás en un plan compartido. Sin embargo, en algunos casos, especialmente en VPS o dedicados, puede ser la IP del servidor. Consulta la documentación de tu proveedor de hosting.


Soluciones específicas por entorno

Ahora que ya sabes lo básico, vamos a profundizar en cómo solucionar el mysql connection refused cpanel (el caso más común) y en otros entornos.

Solucionar "Connection refused" en cPanel

cPanel es el panel de control más usado en hosting compartido. Si tu sitio está en cPanel y ves este error, sigue estos pasos:

  1. Inicia sesión en cPanel: Accede a tudominio.com/cpanel con tus credenciales.
  2. Busca la sección "Bases de Datos": Verás un icono llamado "MySQL Databases" o "Bases de Datos MySQL".
  3. Verifica el estado de MySQL: En la parte superior, a veces hay un indicador de estado. Si no lo ves, no te preocupes.
  4. Revisa los privilegios del usuario: Asegúrate de que el usuario de la base de datos tenga TODOS LOS PRIVILEGIOS sobre la base de datos correcta. Un error común es que el usuario tenga permisos solo en una parte de la base de datos.
  5. Comprueba el archivo wp-config.php: Ve al administrador de archivos de cPanel (File Manager) y navega a public_html. Abre wp-config.php. Verifica que DB_HOST sea exactamente localhost. Si no lo es, cámbialo a localhost y prueba. Si eso no funciona, prueba con 127.0.0.1.

[WARNING] Ten mucho cuidado al editar wp-config.php. Un solo carácter mal puesto puede romper tu sitio. Haz una copia de seguridad del archivo antes de modificarlo.

¿Y si uso un VPS o un servidor dedicado?

Aquí tienes más control, pero también más responsabilidad. Los pasos son similares, pero necesitas acceso SSH.

Paso 1: Comprobar la configuración de red de MySQL

El archivo de configuración de MySQL suele estar en /etc/mysql/my.cnf o /etc/my.cnf. Busca la sección [mysqld] y verifica las líneas bind-address y port.

  • Si bind-address está configurado como 127.0.0.1, MySQL solo aceptará conexiones locales. Si necesitas conexiones remotas, tendrás que cambiarlo a 0.0.0.0 (lo cual no es recomendable por seguridad) o a la IP específica de tu servidor web.
  • El puerto por defecto es 3306. Asegúrate de que no está comentado o cambiado.

Después de cualquier cambio, reinicia MySQL:

systemctl restart mysql

Paso 2: Revisar el firewall

El firewall puede estar bloqueando el puerto 3306. Si usas ufw (Uncomplicated Firewall), puedes permitir el acceso con:

sudo ufw allow 3306/tcp

Si usas firewalld:

sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

[INFO] Si tu servidor usa un panel como Syspanel (antiguamente HestiaCP), recuerda que el acceso a su panel es a través del puerto 2106. Aunque esto no está directamente relacionado con MySQL, es bueno saberlo para gestionar tu servidor si tienes problemas de configuración.

Paso 3: Verificar el socket de MySQL

A veces, el error se debe a que PHP busca el socket en una ubicación incorrecta. Puedes verificar la ruta del socket con:

mysqladmin variables | grep socket

O revisando el archivo de configuración. Si el socket no coincide con lo que PHP espera, tendrás que ajustarlo.


Wordpress Error Base de Datos: Soluciones avanzadas

Si has llegado hasta aquí y el wordpress error base de datos persiste, vamos a probar con soluciones más específicas.

1. El problema del puerto en la conexión

A veces, el host de la base de datos no es localhost, sino una IP o un hostname que incluye el puerto. Por ejemplo: mysql.tudominio.com:3307 (si tu hosting usa un puerto no estándar). En wp-config.php, puedes especificar el puerto de esta manera:

define( 'DB_HOST', 'mysql.tudominio.com:3307' );

Si tu proveedor te ha dado un puerto específico, asegúrate de incluirlo así.

2. El caché de WordPress y DNS

Parece tonto, pero a veces el problema es más simple de lo que pensamos. El caché de tu navegador o el caché de DNS pueden estar mostrando una versión antigua de tu sitio que apunta a un servidor que ya no existe. Limpia el caché de tu navegador y, si puedes, ejecuta un flush del DNS local.

3. Revisar los logs de MySQL

Si tienes acceso SSH, los logs de MySQL son tu mejor amigo. Están normalmente en /var/log/mysql/error.log o /var/log/mysql/mysql.log. Busca líneas que contengan “refused” o “error”. Esto te dará la pista exacta de qué está fallando.

4. El límite de conexiones

Si tu sitio recibe mucho tráfico, es posible que MySQL esté rechazando conexiones porque ha alcanzado el límite max_connections. Puedes verificar esto con:

mysql -u root -p -e "SHOW VARIABLES LIKE 'max_connections';"

Si el número es muy bajo (por ejemplo, 10), puedes aumentarlo en el archivo de configuración de MySQL. Sin embargo, ten cuidado, ya que aumentar este número consume más memoria del servidor.


Guía paso a paso para solucionar el error en tu panel de control

Vamos a hacer un resumen con los pasos concretos que debes seguir, independientemente de tu proveedor.

  1. Reinicia tu router y tu ordenador: A veces el problema es tu propia conexión a internet.
  2. Verifica el estado del servicio MySQL: Desde tu panel de control (cPanel, Plesk, Syspanel, etc.), busca la sección de servicios y asegúrate de que MySQL/MariaDB esté en ejecución. Si está apagado, enciéndelo.
  3. Revisa el archivo wp-config.php: Accede a tu hosting a través de FTP o del administrador de archivos. Abre wp-config.php y verifica que DB_HOST sea localhost (o el valor que te haya dado tu proveedor). Si no estás seguro, pon localhost.
  4. Verifica las credenciales de la base de datos: Asegúrate de que el nombre de la base de datos, el usuario y la contraseña son correctos. Un error tipográfico en la contraseña puede causar este tipo de errores (aunque normalmente da “Access denied”, a veces puede confundirse).
  5. Prueba a conectarte a MySQL desde la terminal: Si tienes acceso SSH, escribe mysql -u tu_usuario -p y prueba a conectarte. Si te conecta, el problema está en la configuración de WordPress. Si te da error, el problema está en el servidor MySQL.
  6. Comprueba el firewall: Si tienes acceso a un firewall, asegúrate de que el puerto 3306 está abierto para conexiones desde tu IP o desde el servidor web.

[WARNING] Si estás usando un servicio de hosting gestionado (como WP Engine o Kinsta), no intentes modificar la configuración del servidor. En su lugar, contacta con su soporte técnico, ya que el error puede estar en su infraestructura.


Preguntas frecuentes (FAQ) sobre el error "Connection refused"

Para finalizar, aquí tienes las respuestas a las dudas más comunes que recibimos en nuestro soporte técnico.

¿Qué significa "Connection refused" en MySQL?

Significa que el servidor MySQL está activo pero está rechazando tu solicitud de conexión. Generalmente, se debe a que el servicio no está escuchando en el puerto o dirección que estás utilizando, o a que un firewall está bloqueando la comunicación.

¿Por qué mi WordPress muestra "Error establishing a database connection"?

Este es el mensaje genérico de WordPress cuando no puede conectarse a la base de datos. Es la manifestación más común del error connection refused mysql wordpress. Las causas son las mismas: servicio caído, configuración incorrecta o firewall.

¿Cómo arreglo el "mysql connection refused" en cPanel?

  1. Ve a cPanel y verifica que MySQL esté en ejecución.
  2. Revisa el archivo wp-config.php en el File Manager.
  3. Asegúrate de que el usuario de la base de datos tenga todos los privilegios.
  4. Si nada funciona, contacta con el soporte de tu hosting, ya que puede ser un problema del servidor.

¿Qué es el DB_HOST y qué valor debo usar?

DB_HOST es la dirección del servidor de base de datos. La mayoría de las veces es localhost, pero en algunos casos es una IP o un hostname. Usa localhost a menos que tu proveedor te diga lo contrario.

¿Puedo solucionar este error si no tengo experiencia técnica?

Sí, en la mayoría de los casos. Los pasos de este artículo son seguros y fáciles de seguir. Sin embargo, si no te sientes cómodo editando archivos de configuración o usando SSH, te recomiendo que contactes con el soporte técnico de tu hosting. Ellos pueden solucionarlo por ti.

¿El error "Connection refused" puede deberse a un ataque?

Es poco probable, pero no imposible. Si el servidor está bajo un ataque DDoS, MySQL puede rechazar conexiones. Sin embargo, las causas más comunes son las que hemos visto. Si sospechas de un ataque, contacta con tu proveedor de hosting inmediatamente.

¿Qué pasa si uso Syspanel (HestiaCP)?

Si usas Syspanel, el acceso al panel de administración es a través del puerto 2106. Para el error de MySQL, los pasos son los mismos que en cualquier otro servidor: verifica el estado del servicio MySQL, revisa la configuración de red y el firewall. Syspanel incluye herramientas para gestionar bases de datos, así que asegúrate de que la base de datos y el usuario estén creados correctamente.


Conclusión: No pierdas la calma, es solucionable

El error “Connection refused” en MySQL puede ser frustrante, pero es uno de los problemas de hosting más comunes y documentados. Siguiendo los pasos de esta guía, podrás identificar la causa y aplicar la solución adecuada en la mayoría de los casos.

Recuerda el orden lógico: primero verifica que el servicio esté activo, luego revisa la configuración de WordPress y, por último, investiga la configuración del servidor y el firewall. Si todo falla, tu proveedor de hosting es tu mejor recurso, ya que tiene acceso directo a la infraestructura.

Esperamos que este artículo te haya sido de gran ayuda. Si tienes más dudas, no dudes en consultar nuestra sección de preguntas frecuentes o contactar con nuestro equipo de soporte. ¡Buena suerte con tu sitio web!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel