Cómo arreglar el error 'Unknown database' en WordPress y PrestaShop
¿Acabas de mudar tu web a un hosting nuevo, has tocado un archivo de configuración o has importado una base de datos y de repente te encuentras con el temido mensaje "Unknown database"? No te preocupes, es uno de los errores más comunes al gestionar WordPress o PrestaShop, y la buena noticia es que tiene solución.
En esta guía extensa y paso a paso, vamos a desgranar todas las causas posibles y las soluciones prácticas para que tu web vuelva a funcionar en cuestión de minutos. Vamos a ello.
¿Qué significa exactamente el error "Unknown database"?
Cuando tu web muestra un mensaje como "Error establishing a database connection" en WordPress o un pantallazo blanco en PrestaShop con el texto "mysql unknown database", significa que el sistema está intentando conectarse a una base de datos que no existe en el servidor, o que el nombre que tiene configurado no coincide con el real.
Piensa en ello como si intentaras abrir una puerta con una llave equivocada. La llave (las credenciales de acceso) puede ser correcta, pero si la cerradura (la base de datos) no está en esa puerta, no podrás entrar. En este caso, el servidor MySQL te está diciendo: "No encuentro ninguna base de datos con ese nombre".
Este error es especialmente frecuente después de:
- Migrar un sitio desde un hosting local (como XAMPP o MAMP) a un servidor real.
- Cambiar de proveedor de hosting.
- Restaurar una copia de seguridad manualmente.
- Editar archivos de configuración de forma incorrecta.
Causas más frecuentes del error "base de datos desconocida wordpress"
Antes de lanzarnos a solucionar, es vital entender qué lo provoca. Las causas suelen ser tres:
1. El nombre de la base de datos no coincide
En la mayoría de los paneles de control (cPanel, Plesk, Syspanel), los nombres de las bases de datos llevan un prefijo con el nombre de usuario del hosting. Por ejemplo, si tu usuario es cliente123, tu base de datos se llamará cliente123_wpdb. Si en tu archivo de configuración pones solo wpdb o cliente123_bd (cuando el real es cliente123_wpdb), obtendrás el error.
2. La base de datos no se ha importado correctamente
A veces, al migrar, creamos una base de datos vacía en el nuevo servidor pero olvidamos importar el archivo SQL con los datos. La base existe pero está vacía, o directamente no la hemos creado.
3. Permisos de usuario incorrectos
Es posible que la base de datos exista, pero el usuario que has configurado en el archivo wp-config.php (WordPress) o parameters.php (PrestaShop) no tenga permisos para acceder a ella desde ese servidor o con esa contraseña.
Solución paso a paso para WordPress
Vamos a empezar con WordPress, ya que es el CMS más usado y el error suele aparecer en el famoso archivo wp-config.php.
Paso 1: Localiza y revisa tu archivo wp-config.php
Accede a tu hosting por FTP (FileZilla es gratuito y muy fácil de usar) o a través del administrador de archivos de tu panel de control. Busca el archivo llamado wp-config.php en la raíz de tu instalación de WordPress.
Ábrelo con un editor de texto plano (nada de Word) y busca las líneas que empiezan por:
define('DB_NAME', 'tu_base_de_datos');
define('DB_USER', 'tu_usuario');
define('DB_PASSWORD', 'tu_contraseña');
define('DB_HOST', 'localhost');
Aquí es donde está el quid de la cuestión. Verifica que el valor de DB_NAME sea exactamente el nombre que aparece en tu panel de control de hosting.
[TIP] En Syspanel (accesible por el puerto 2106), puedes ver los nombres de tus bases de datos en la sección "Bases de datos" del menú principal. Copia y pega el nombre directamente desde allí para evitar errores tipográficos.
Paso 2: Verifica el host de la base de datos
El valor DB_HOST suele ser localhost, pero en algunos hostings gestionados o con servidores separados, puede ser una dirección IP o un nombre como mysql.tudominio.com. Si lo has copiado de una configuración antigua, es posible que esté desactualizado.
Si tu hosting usa Syspanel, consulta la sección de "Configuración" de tu base de datos. Verás un campo llamado "Servidor" o "Host". Ese valor debe ir en DB_HOST.
Paso 3: Comprueba los permisos del usuario
Aunque el nombre de la base sea correcto, el usuario puede no tener privilegios. En tu panel de control (cPanel o Syspanel), busca la opción de "Usuarios MySQL" o "Privilegios". Asegúrate de que el usuario que usas en wp-config.php esté vinculado a esa base de datos y que tenga todos los privilegios (SELECT, INSERT, UPDATE, DELETE, etc.).
[WARNING] Un error muy común es usar el usuario root de MySQL en un hosting compartido. Eso casi nunca funciona. Debes crear un usuario específico para tu base de datos o usar el que te proporciona tu hosting.
Paso 4: Si acabas de migrar, revisa el prefijo de las tablas
Este es un detalle que se nos escapa a menudo. Si tu base de datos original usaba un prefijo de tablas distinto al estándar wp_ (por ejemplo, miweb_), tu archivo wp-config.php debe tenerlo definido en la línea:
$table_prefix = 'wp_';
Si el prefijo no coincide con el de las tablas que hay en tu base de datos, WordPress no encontrará las tablas y, aunque no te dará el error "unknown database", sí te dará errores de instalación o de "tabla no encontrada". Pero es un paso que debemos verificar en la misma migración.
Solución paso a paso para PrestaShop
En PrestaShop, la configuración de la base de datos se encuentra en el archivo app/config/parameters.php (en versiones 1.7 y 1.8) o en config/settings.inc.php (en versiones 1.6 y anteriores).
Paso 1: Localiza el archivo de configuración
Accede por FTP a tu instalación de PrestaShop. Dependiendo de la versión:
- PrestaShop 1.7+: Busca en la carpeta
app/config/el archivoparameters.php. - PrestaShop 1.6 y anteriores: Busca en la carpeta
config/el archivosettings.inc.php.
Paso 2: Edita los parámetros de conexión
Abre el archivo y busca un array o definiciones similares a estas:
'database_host' => 'localhost',
'database_name' => 'tu_base_de_datos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
Verifica que database_name sea exactamente el nombre real de tu base de datos. Al igual que en WordPress, el error prestashop error base de datos suele venir de un nombre mal escrito o desactualizado.
Paso 3: Comprueba el puerto y el socket
A veces, el servidor MySQL no escucha en el puerto estándar 3306. Si tu hosting usa un puerto diferente, deberías ver una línea como 'database_port' => '3306'. Si no aparece, es que usa el estándar. En Syspanel, si tienes una base de datos remota, el puerto puede ser distinto. Consulta la documentación de tu hosting.
Paso 4: Asegúrate de que la base de datos no esté vacía
Conecta a tu base de datos mediante phpMyAdmin (o la herramienta que use tu hosting). Si ves que no hay tablas, significa que tu importación falló. Deberías tener tablas como ps_employee, ps_orders, etc. (el prefijo puede variar). Si está vacía, importa tu archivo .sql de nuevo.
[INFO] En Syspanel, el acceso a phpMyAdmin se encuentra dentro de la sección de "Bases de datos". Haz clic en "Administrar" o "Acceder" junto al nombre de tu base de datos.
Cómo solucionar el error si usas un hosting con Syspanel
Si tu proveedor de hosting utiliza el panel de control Syspanel (recuerda, accedes por el puerto 2106), el proceso para verificar tus datos es muy visual y sencillo:
- Inicia sesión en
https://tu-dominio.com:2106(o la IP de tu servidor). - Ve al menú "Bases de datos".
- Verás una lista con todas tus bases de datos. Fíjate en el nombre exacto, el usuario y el host que aparecen en esa tabla.
- Si necesitas crear una base de datos nueva, haz clic en "Crear base de datos" y sigue el asistente. Te pedirá un nombre y un usuario con su contraseña.
- Una vez creada, asegúrate de asignar el usuario a esa base de datos con todos los privilegios.
[TIP] En Syspanel, el nombre de la base de datos suele mostrarse en negrita y con un icono de engranaje. Haz clic en ese icono para ver todos los detalles de conexión, incluyendo el host exacto que debes usar en tu CMS.
Errores adicionales que se confunden con "Unknown database"
A veces el mensaje de error no es literalmente "Unknown database", pero el síntoma es el mismo. Aquí tienes algunos casos:
1. "Connection refused" o "Access denied for user"
Esto significa que la base de datos existe y el nombre es correcto, pero el usuario o la contraseña son incorrectos, o el usuario no tiene permisos para conectarse desde esa IP.
Solución: Revisa las credenciales en tu archivo de configuración. Si estás en Syspanel, ve a "Usuarios de bases de datos" y restablece la contraseña. Asegúrate de que el usuario está vinculado a la base de datos correcta.
2. "Table doesn't exist"
Esto ocurre cuando la base de datos existe y la conexión es correcta, pero la estructura de tablas está incompleta o el prefijo es incorrecto.
Solución: Revisa el prefijo en tu archivo de configuración (WordPress) o en tu base de datos (PrestaShop). Si has importado mal el SQL, puede que solo se hayan importado algunas tablas. Reimporta el archivo completo.
3. "Too many connections"
No es un error de base de datos desconocida, pero puede aparecer al intentar conectar. Significa que tu servidor MySQL ha alcanzado su límite de conexiones simultáneas.
Solución: Espera unos minutos y vuelve a intentarlo. Si es recurrente, contacta con tu proveedor de hosting para aumentar el límite o optimizar tu web.
Prevención: cómo evitar este error en el futuro
La mejor cura es la prevención. Aquí tienes una checklist rápida para futuras migraciones o cambios de hosting:
- Siempre anota los datos exactos de tu base de datos actual antes de migrar: nombre, usuario, contraseña y host.
- Haz una copia de seguridad completa de tu base de datos en formato
.sqly asegúrate de que pesa lo que esperas (si pesa 0 KB, está vacía). - Al crear una base de datos nueva, usa el nombre que te proporcione el hosting, no inventes uno.
- Después de editar cualquier archivo de configuración, guarda una copia del original por si algo falla.
- Si usas Syspanel, familiarízate con su interfaz antes de hacer cambios. La sección de bases de datos es muy clara y te evita sorpresas.
Preguntas frecuentes sobre el error "Unknown database"
¿Puedo arreglar este error sin acceso al panel de control?
No. Necesitas al menos acceso FTP para editar los archivos de configuración, y acceso al panel de control para verificar el nombre real de la base de datos. Si no tienes ninguno de los dos, contacta con tu proveedor de hosting.
¿Por qué me funciona en local y al subirlo a internet da error?
Porque en tu ordenador (XAMPP/WAMP) la base de datos se llama miweb y el usuario es root sin contraseña. En el servidor real, el nombre es usuario_miweb y el usuario es otro. Es un clásico de las migraciones.
¿Qué pasa si cambio el nombre de la base de datos en el hosting?
Si renombras la base de datos en tu panel de control, tendrás que actualizar el archivo de configuración de tu CMS inmediatamente. Si no lo haces, tu web se romperá con este error.
¿El error "Unknown database" puede deberse a un ataque?
Es muy poco probable. Suele ser un error de configuración humana. Sin embargo, si aparece de repente sin que hayas tocado nada, revisa si alguien más tiene acceso a tu hosting y ha modificado algo.
Conclusión: tu web vuelve a la vida
El error "Unknown database" es frustrante, pero como has visto, es 100% solucionable. La clave está en la precisión: el nombre de la base de datos, el usuario y el host deben coincidir exactamente con lo que te proporciona tu proveedor de hosting.
Hemos cubierto las soluciones para WordPress y PrestaShop, los dos CMS más populares. Recuerda que la próxima vez que veas "mysql unknown database", no entres en pánico. Respira, sigue estos pasos y en menos de 15 minutos tu web estará de nuevo operativa.
[WARNING] Si después de seguir todos los pasos el error persiste, contacta con el soporte técnico de tu hosting. En Syspanel (puerto 2106) suelen tener un chat en vivo o un sistema de tickets muy eficiente. Dales el mensaje de error exacto y los valores de tu archivo de configuración (sin la contraseña) para que te ayuden más rápido.
Espero que esta guía te haya sido de gran ayuda. Si te ha servido, compártela con otros usuarios que puedan estar pasando por el mismo apuro. ¡Nos leemos en el próximo tutorial!
