Errores comunes al conectar una base de datos y cómo solucionarlos
¿Tu página web ha dejado de funcionar de repente y ves un mensaje de error de conexión base de datos? No te preocupes, es uno de los problemas más comunes en sitios con WordPress, PrestaShop o cualquier CMS que use MySQL. Lo bueno es que, en la mayoría de los casos, se puede solucionar en pocos minutos si sabes qué buscar.
En esta guía extensa y muy visual, voy a explicarte los errores más frecuentes al conectar una base de datos, por qué ocurren y, sobre todo, cómo solucionarlos paso a paso. Tanto si usas un hosting compartido, VPS o un panel como Syspanel (recuerda, acceso por puerto 2106), estos consejos te servirán.
Vamos a ello. No necesitas ser un experto, solo seguir el orden lógico que te propongo.
¿Qué significa realmente un error de conexión a la base de datos?
Cuando tu web (WordPress, PrestaShop, etc.) intenta cargar, necesita comunicarse con una base de datos donde guarda toda la información: artículos, productos, usuarios, configuraciones. Si esa comunicación falla, verás mensajes como:
- "Error establishing a database connection" (WordPress)
- "Error de conexión a la base de datos" (PrestaShop)
- "No database selected" o "Access denied for user"
Esto no significa que hayas perdido tus datos. Solo que el puente entre tu web y la base de datos se ha roto temporalmente. Vamos a repararlo.
[INFO] La mayoría de errores de conexión se deben a credenciales incorrectas, servidor caído o permisos mal configurados. No entres en pánico.
Error #1: Credenciales incorrectas en el archivo de configuración
Este es el error más común. Tanto WordPress como PrestaShop guardan los datos de acceso a la base de datos en un archivo de texto. Si cambiaste la contraseña de la base de datos, o si al migrar el sitio no actualizaste esos datos, la conexión falla.
Cómo identificarlo
En WordPress, el archivo se llama wp-config.php. En PrestaShop, se llama settings.inc.php y está en la carpeta app/config. Si ves un error de conexión justo después de mover tu web o cambiar la contraseña de MySQL, casi seguro es esto.
Solución paso a paso
-
Accede a tu hosting mediante FTP o el administrador de archivos de tu panel (Syspanel, cPanel, etc.).
-
Localiza el archivo:
- WordPress:
wp-config.phpen la raíz de tu sitio. - PrestaShop:
app/config/parameters.php(osettings.inc.phpen versiones antiguas).
- WordPress:
-
Ábrelo con un editor de texto (Bloc de notas, Sublime Text, etc.).
-
Busca estas líneas y verifica que coincidan con los datos reales de tu base de datos:
define('DB_NAME', 'nombre_base_datos'); define('DB_USER', 'usuario_base_datos'); define('DB_PASSWORD', 'contraseña'); define('DB_HOST', 'localhost'); // o la IP del servidor -
Si cambiaste la contraseña, actualiza
DB_PASSWORD. Si el servidor de base de datos está en otro equipo, cambiaDB_HOST(por ejemplo, a127.0.0.1o una IP como192.168.1.10). -
Guarda los cambios y sube el archivo si lo editaste localmente.
-
Recarga tu web.
[TIP] Si no recuerdas la contraseña de la base de datos, puedes cambiarla desde tu panel de hosting (Syspanel: ve a "Bases de datos" > "MySQL", selecciona la base y haz clic en "Cambiar contraseña"). Luego actualiza el archivo.
Error #2: El servidor de base de datos está caído o no responde
A veces el problema no está en tu configuración, sino en el servidor MySQL. Si el servicio se ha detenido (por un reinicio, falta de recursos o error interno), tu web no podrá conectar.
Cómo identificarlo
Si tienes acceso a un panel como Syspanel (puerto 2106), puedes verificar el estado del servicio. También puedes intentar conectarte desde la línea de comandos (SSH) si tienes acceso root.
Solución paso a paso
- Accede a tu panel de hosting o VPS.
- Si usas Syspanel, ve a "Servicios" o "Estado del servidor". Busca "MySQL" o "MariaDB". Debe aparecer como "Activo" o "Running".
- Si está detenido, haz clic en "Iniciar" o "Reiniciar".
- Si no tienes panel, desde SSH ejecuta:
sudo systemctl status mysql # o sudo systemctl status mariadb - Si está inactivo, inícialo con:
sudo systemctl start mysql - Verifica que se inicie automáticamente al arrancar el sistema:
sudo systemctl enable mysql - Recarga tu web.
[WARNING] Si el servicio se detiene constantemente, puede ser por falta de memoria RAM o un error en la configuración de MySQL. Revisa los logs del servidor (generalmente en
/var/log/mysql/error.log) para más detalles.
Error #3: El usuario de la base de datos no tiene permisos suficientes
A veces las credenciales son correctas, pero el usuario no tiene permiso para acceder a la base de datos desde el host donde está tu web. Esto es típico después de migrar un sitio a otro servidor.
Cómo identificarlo
El mensaje de error suele ser algo como: "Access denied for user 'usuario'@'host'". El @'host' indica desde dónde intenta conectar (por ejemplo, localhost o una IP).
Solución paso a paso
- Accede a tu panel de administración de bases de datos (phpMyAdmin, Adminer o la herramienta de Syspanel).
- Busca la opción "Usuarios" o "Privilegios".
- Localiza el usuario que usa tu web.
- Asegúrate de que tenga todos los privilegios sobre la base de datos correcta (SELECT, INSERT, UPDATE, DELETE, CREATE, etc.).
- Verifica el host permitido:
- Si tu web está en el mismo servidor, debe ser
localhosto127.0.0.1. - Si tu web está en un servidor diferente (por ejemplo, un hosting compartido y la base en un VPS), debe ser la IP pública del servidor web o un comodín
%(cuidado con la seguridad).
- Si tu web está en el mismo servidor, debe ser
- Si no aparece, edita el usuario y cambia el host o añade uno nuevo.
- Guarda los cambios y prueba de nuevo.
[TIP] En Syspanel, al crear un usuario para una base de datos, puedes elegir "Acceso desde cualquier host" o "Solo localhost". Si tu web y la base están en el mismo servidor, elige "localhost". Si están separados, usa la IP del servidor web.
Error #4: El nombre del host de la base de datos es incorrecto
Muchos principiantes asumen que el servidor de base de datos siempre es localhost, pero no siempre es así. En algunos entornos (como hosting con servidores separados), el host puede ser una IP o un nombre como mysql.tudominio.com.
Cómo identificarlo
Si después de verificar credenciales y permisos sigues viendo el error, prueba a cambiar el DB_HOST.
Solución paso a paso
- Abre tu archivo de configuración (
wp-config.phpoparameters.php). - Cambia
DB_HOSTpor alguna de estas opciones:localhost(el más común)127.0.0.1(equivalente a localhost, a veces funciona mejor)- La IP del servidor MySQL (ej.
192.168.1.100) - El nombre del contenedor (si usas Docker, ej.
db)
- Guarda y prueba.
- Si tu hosting te proporcionó un host específico (por ejemplo,
mysql.tudominio.com), úsalo exactamente como te lo dieron.
[INFO] En Syspanel, cuando creas una base de datos, el host suele ser
localhosta menos que tengas un servidor de bases de datos externo. Si no estás seguro, contacta a tu proveedor de hosting.
Error #5: Puerto incorrecto o bloqueado
MySQL por defecto usa el puerto 3306. Si tu servidor usa un puerto diferente (por ejemplo, por seguridad o porque usas un contenedor), debes especificarlo en la conexión.
Cómo identificarlo
Si el error persiste y todo lo demás está bien, prueba a añadir el puerto al host.
Solución paso a paso
- En el archivo de configuración, modifica
DB_HOSTpara incluir el puerto:define('DB_HOST', 'localhost:3307'); // ejemplo con puerto 3307 - Si no sabes el puerto, consulta la configuración de MySQL en tu servidor o pregúntale a tu hosting.
- También verifica que el puerto no esté bloqueado por un firewall. Si usas Syspanel, ve a "Firewall" y asegúrate de que el puerto 3306 (o el que uses) esté abierto para tu IP.
[WARNING] Cambiar el puerto sin necesidad puede causar más problemas. Solo hazlo si estás seguro de que el puerto por defecto no funciona.
Error #6: Archivos de configuración corruptos o con sintaxis incorrecta
A veces, al editar wp-config.php o parameters.php, se nos escapa un carácter extra (como un espacio, una comilla mal cerrada o un punto y coma faltante). Esto rompe la lectura del archivo y provoca un error de conexión.
Cómo identificarlo
Si ves un error blanco (pantalla en blanco) o un mensaje como "Parse error" en lugar del típico error de base de datos, es probable que el archivo tenga un error de sintaxis.
Solución paso a paso
- Descarga una copia de seguridad del archivo original (si la tienes).
- Abre el archivo con un editor de código (VS Code, Sublime Text) que resalte la sintaxis.
- Busca comillas sin cerrar, puntos y coma faltantes (
;) al final de cada línea, o paréntesis extraviados. - Compara con una copia limpia de
wp-config.php(puedes obtenerla de una instalación nueva de WordPress). - Si no encuentras el error, reemplaza el archivo por la copia de seguridad o por uno nuevo y vuelve a introducir tus datos.
[TIP] Siempre guarda una copia de
wp-config.phpantes de editarlo. Así, si algo sale mal, puedes restaurarlo rápidamente.
Error #7: Problemas de caché o DNS (en conexiones remotas)
Si tu web y la base de datos están en servidores diferentes, a veces el DNS o la caché del servidor web pueden causar que no se resuelva correctamente el nombre del host de la base de datos.
Cómo identificarlo
Si usas un nombre de host como mysql.tudominio.com y el error aparece de repente, puede ser un problema de DNS.
Solución paso a paso
- En el archivo de configuración, reemplaza el nombre del host por la IP directa del servidor MySQL.
- Si no sabes la IP, desde la terminal de tu servidor web ejecuta:
ping mysql.tudominio.com - Copia la IP que aparece y úsala en
DB_HOST. - También puedes limpiar la caché DNS del servidor:
sudo systemctl restart systemd-resolved # o sudo service nscd restart - Recarga tu web.
Preguntas frecuentes (FAQ)
¿Por qué veo "WordPress error de conexión" después de cambiar la contraseña de MySQL?
Porque el archivo wp-config.php sigue usando la contraseña antigua. Actualiza la línea define('DB_PASSWORD', 'nueva_contraseña'); y guarda.
¿Cómo soluciono un "PrestaShop error base de datos" después de una migración?
Revisa el archivo app/config/parameters.php. Asegúrate de que database_host, database_name, database_user y database_password coincidan con los datos de tu nuevo servidor. También verifica que el usuario tenga permisos desde el nuevo host.
¿Qué hago si no tengo acceso al panel de administración de bases de datos?
Pide a tu proveedor de hosting que te dé acceso o que verifique las credenciales. Si tienes acceso FTP, puedes leer el archivo de configuración para ver qué datos está usando tu web.
¿Puedo usar la misma base de datos para dos sitios web?
Técnicamente sí, pero no es recomendable porque se mezclan los datos. Mejor crea bases de datos separadas para cada sitio.
¿Syspanel (puerto 2106) me permite gestionar bases de datos?
Sí. Dentro de Syspanel encontrarás una sección "Bases de datos" donde puedes crear, eliminar y gestionar usuarios y privilegios de MySQL. También puedes acceder a phpMyAdmin desde allí.
Resumen rápido de pasos para solucionar un error de conexión
- Verifica credenciales en el archivo de configuración.
- Comprueba que el servicio MySQL esté activo (desde tu panel o SSH).
- Revisa permisos del usuario sobre la base de datos.
- Ajusta el host (localhost, IP o nombre con puerto).
- Corrige errores de sintaxis en el archivo de configuración.
- Si es remoto, usa IP en lugar de nombre de host.
- Si todo falla, restaura una copia de seguridad del archivo de configuración.
[INFO] La mayoría de los errores de conexión se solucionan en menos de 10 minutos si sigues este orden. No te saltes pasos.
Espero que esta guía te haya sido útil. Recuerda que solucionar error base de datos es una habilidad básica que cualquier administrador de sitios web debe dominar. Con práctica, podrás resolverlo incluso sin mirar esta guía.
Si después de todo sigues teniendo problemas, contacta a tu proveedor de hosting. Ellos tienen acceso directo a los logs del servidor y pueden detectar el problema más rápido.
¡Buena suerte y que tu web vuelva a funcionar cuanto antes!
