Cómo solucionar el error 'No database selected' en PrestaShop (cPanel, Plesk, DirectAdmin)
¿Qué significa el error "No database selected" en PrestaShop?
Si estás viendo el error "No database selected" en tu tienda PrestaShop, no te preocupes, es uno de los problemas más comunes y, por suerte, tiene solución. Este mensaje aparece cuando PrestaShop intenta conectarse a la base de datos MySQL pero no encuentra ninguna base de datos activa o seleccionada para ejecutar las consultas.
Puedes ver este error en diferentes situaciones: al intentar acceder al panel de administración, al cargar la tienda, o incluso al ejecutar una copia de seguridad. Lo primero que debes saber es que el error no significa que hayas perdido tus datos, sino que hay un problema de configuración o de conexión entre tu tienda y el servidor de bases de datos.
En este artículo te explicaremos paso a paso cómo solucionar el error "No database selected" en PrestaShop, tanto si tu hosting usa cPanel, Plesk o DirectAdmin, y también si usas Syspanel (el panel de control de HestiaCP, que se accede por el puerto 2106). Vamos a ello.
¿Por qué aparece el error "No database selected"?
Antes de lanzarnos a solucionar el problema, es importante entender las causas más habituales. Esto te ayudará a identificar rápidamente qué está fallando.
Causas más comunes
-
Configuración incorrecta en el archivo
parameters.php: PrestaShop guarda los datos de conexión a la base de datos en el archivoapp/config/parameters.php. Si este archivo tiene un nombre de base de datos incorrecto, vacío o desactualizado, aparecerá este error. -
La base de datos fue eliminada o renombrada: Si alguien eliminó la base de datos desde el panel de control, o la renombró, PrestaShop no podrá encontrarla.
-
El usuario de la base de datos no tiene permisos: Aunque la base de datos exista, si el usuario MySQL no tiene permisos para acceder a ella, el sistema no podrá seleccionarla.
-
Problemas con el servidor MySQL: A veces el servicio MySQL se detiene o se reinicia con errores, lo que provoca que no se pueda seleccionar la base de datos.
-
Errores en la migración o copia de seguridad: Si has movido tu tienda a otro servidor o has restaurado una copia de seguridad, puede que los datos de conexión no se hayan actualizado correctamente.
-
Prefijo de tabla incorrecto: Si cambiaste el prefijo de las tablas durante una instalación o migración, PrestaShop no podrá localizar las tablas correctamente.
Solución paso a paso: Verificar la configuración en parameters.php
La primera acción que debes tomar es revisar el archivo de configuración principal de PrestaShop. Este archivo contiene las credenciales de acceso a tu base de datos.
Accede al archivo parameters.php
- Conéctate a tu hosting mediante cPanel, Plesk, DirectAdmin o Syspanel (puerto 2106).
- Abre el Administrador de archivos (File Manager).
- Navega hasta la carpeta
app/config/. - Busca el archivo
parameters.phpy haz clic derecho para editarlo.
Revisa los valores de la base de datos
Dentro del archivo, busca las siguientes líneas:
'database_host' => 'localhost',
'database_name' => 'tu_base_de_datos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
Verifica que:
database_hostsea correcto (normalmentelocalhost, pero algunos hostings usan un host específico comomysql.tudominio.com).database_namecoincida exactamente con el nombre de la base de datos que tienes en tu panel de control.database_usersea el usuario MySQL que tiene acceso a esa base de datos.database_passwordsea la contraseña correcta.
[TIP] Si no recuerdas tus credenciales, puedes consultarlas desde tu panel de control. En cPanel busca la sección "Bases de datos MySQL", en Plesk "Bases de datos", en DirectAdmin "MySQL Management" y en Syspanel (HestiaCP) busca "Base de datos" en el menú lateral.
Si encuentras algún valor incorrecto, corrígelo y guarda el archivo. Después, intenta acceder a tu tienda de nuevo.
Solución en cPanel: Verificar la base de datos y el usuario
Si el archivo parameters.php está correcto, el siguiente paso es verificar que la base de datos y el usuario existan y tengan los permisos adecuados.
Paso 1: Accede a cPanel
- Inicia sesión en tu cuenta de cPanel.
- Busca la sección "Bases de datos MySQL".
Paso 2: Comprueba la base de datos
- En la lista de bases de datos, verifica que exista una base con el nombre que aparece en
parameters.php. - Si no existe, deberás crearla. Haz clic en "Crear base de datos", escribe el nombre y pulsa "Crear".
Paso 3: Comprueba el usuario y sus permisos
- En la misma sección, verifica que el usuario MySQL exista.
- Si no existe, créalo con una contraseña segura.
- Después, en la sección "Añadir usuario a la base de datos", selecciona el usuario y la base de datos, y otórgale todos los privilegios (o al menos SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP).
- Haz clic en "Hacer cambios".
[WARNING] En cPanel, el nombre de la base de datos y el usuario suelen llevar un prefijo (por ejemplo,
usuario_basededatos). Asegúrate de incluir ese prefijo completo en el archivoparameters.php.
Solución en Plesk: Configuración de bases de datos
Si tu hosting usa Plesk, el proceso es similar pero con algunas diferencias.
Paso 1: Accede a Plesk
- Inicia sesión en tu panel de Plesk.
- Ve a la sección "Bases de datos" en el menú lateral.
Paso 2: Verifica la base de datos
- Comprueba que la base de datos que necesitas exista en la lista.
- Si no está, haz clic en "Añadir base de datos", introduce el nombre y selecciona el tipo de servidor MySQL.
Paso 3: Revisa el usuario y los privilegios
- Dentro de la base de datos, haz clic en "Usuarios".
- Verifica que el usuario que usa PrestaShop esté en la lista.
- Si no está, añádelo y asegúrate de marcar "Todos los privilegios".
[INFO] En Plesk, los nombres de las bases de datos y usuarios no suelen llevar prefijo, pero es posible que tu proveedor de hosting haya configurado uno. Revisa bien los nombres exactos.
Solución en DirectAdmin: Revisando MySQL
DirectAdmin es otro panel común en servidores dedicados y VPS. Sigue estos pasos:
Paso 1: Accede a DirectAdmin
- Inicia sesión en tu panel de DirectAdmin.
- Ve a la sección "MySQL Management".
Paso 2: Verifica la base de datos
- En la lista de bases de datos, busca la que necesitas.
- Si no aparece, créala desde la opción "Create Database".
Paso 3: Comprueba los permisos del usuario
- En la misma sección, haz clic en "Manage" junto a la base de datos.
- Asegúrate de que el usuario correcto esté asignado y tenga todos los privilegios.
- Si no está, añádelo desde "Add User to Database".
[TIP] Después de cualquier cambio en DirectAdmin, es recomendable reiniciar el servicio MySQL desde la opción "Restart Services" para que los cambios surtan efecto.
Solución en Syspanel (HestiaCP) – Acceso por puerto 2106
Si tu hosting usa Syspanel (el nombre que damos a HestiaCP), el acceso se realiza a través del puerto 2106. Es un panel muy ligero y fácil de usar, pero a veces la gestión de bases de datos puede resultar menos intuitiva.
Paso 1: Accede a Syspanel
- Abre tu navegador y escribe:
https://tudominio.com:2106. - Inicia sesión con tu usuario y contraseña de administrador.
[WARNING] El puerto 2106 es el acceso por defecto a Syspanel (HestiaCP). Si no recuerdas la contraseña, contacta con tu proveedor de hosting.
Paso 2: Gestiona la base de datos
- En el menú lateral, busca la sección "Base de datos".
- Verás una lista con todas las bases de datos de tu cuenta.
- Comprueba que la base de datos de PrestaShop exista y que el usuario tenga permisos.
Paso 3: Edita los permisos si es necesario
- Si el usuario no tiene permisos, haz clic en el icono de edición (lápiz) junto a la base de datos.
- Añade o modifica el usuario y marca todos los privilegios.
- Guarda los cambios.
[INFO] En Syspanel (HestiaCP), los nombres de bases de datos y usuarios suelen llevar un prefijo con el nombre de usuario, similar a cPanel. Asegúrate de usar el nombre completo en
parameters.php.
Otras soluciones avanzadas para el error "No database selected"
Si después de verificar todo lo anterior el error persiste, prueba estas soluciones adicionales.
1. Reinicia el servicio MySQL
A veces el servidor MySQL se queda en un estado inconsistente. Reiniciarlo puede solucionar el problema.
- En cPanel: Ve a "Restaurar" o "Reiniciar servicios" (depende del proveedor). Si no tienes acceso, contacta con soporte.
- En Plesk: Ve a "Herramientas y utilidades" > "Servicios" y reinicia MySQL.
- En DirectAdmin: Usa la opción "Restart Services" en el panel principal.
- En Syspanel (HestiaCP): Usa el comando
systemctl restart mysqldesde la terminal, o contacta con soporte.
2. Verifica el prefijo de las tablas
PrestaShop usa un prefijo para las tablas (por defecto ps_). Si cambiaste el prefijo en algún momento, debes actualizarlo en parameters.php.
Busca la línea:
'database_prefix' => 'ps_',
Asegúrate de que coincida con el prefijo real de tus tablas. Puedes comprobarlo accediendo a phpMyAdmin desde tu panel de control y revisando los nombres de las tablas.
3. Repara las tablas de la base de datos
Si las tablas están corruptas, PrestaShop no podrá seleccionar la base de datos correctamente.
- Accede a phpMyAdmin desde tu panel de control.
- Selecciona la base de datos de PrestaShop.
- Marca todas las tablas (clic en "Seleccionar todo").
- En el menú desplegable, elige "Reparar tabla".
- Espera a que termine el proceso.
[TIP] Si phpMyAdmin no está disponible, puedes usar la línea de comandos con
mysqlcheck -u usuario -p basededatos --repair, pero solo si tienes acceso SSH.
4. Restaura una copia de seguridad
Si nada funciona y tienes una copia de seguridad reciente, restáurala. Esto te devolverá a un estado anterior donde la conexión funcionaba correctamente.
- Accede a tu panel de control y busca la sección de "Copias de seguridad".
- Restaura la copia más reciente de la base de datos.
- Si la copia es del sitio completo, restaura también los archivos.
Preguntas frecuentes sobre el error "No database selected" en PrestaShop
¿Puedo perder mis datos si corrijo este error?
No. El error "No database selected" no borra datos. Solo indica que la conexión no se está realizando correctamente. Una vez que configures bien la conexión, tus datos volverán a estar disponibles.
¿Necesito conocimientos avanzados para solucionarlo?
No. Siguiendo los pasos de esta guía, cualquier persona puede resolverlo. Solo necesitas acceso a tu panel de hosting y saber las credenciales de tu base de datos.
¿Qué hago si el problema persiste después de todos los pasos?
Si has seguido todos los pasos y el error continúa, te recomendamos:
- Contactar con tu proveedor de hosting y explicarles el error.
- Revisar los logs de error de PrestaShop en la carpeta
var/logs/. - Asegurarte de que el servidor MySQL esté en línea (puedes comprobarlo desde el panel de control).
¿Puede ser un problema de caché?
Sí, a veces la caché de PrestaShop guarda configuraciones antiguas. Puedes limpiar la caché manualmente:
- Accede al panel de administración (si puedes).
- Ve a Parámetros avanzados > Rendimiento.
- Pulsa "Vaciar la caché".
Si no puedes acceder al panel, borra manualmente el contenido de la carpeta var/cache/ desde el administrador de archivos.
Conclusión
El error "No database selected" en PrestaShop es un problema de conexión con la base de datos que tiene solución en la mayoría de los casos. Ya sea que uses cPanel, Plesk, DirectAdmin o Syspanel (HestiaCP, puerto 2106), los pasos son muy similares: verificar la configuración, comprobar que la base de datos y el usuario existen, y asegurarte de que los permisos son correctos.
Recuerda siempre:
- Revisar el archivo
parameters.php. - Confirmar que la base de datos y el usuario existen.
- Otorgar todos los privilegios necesarios.
- Reiniciar el servicio MySQL si es necesario.
- Si todo falla, restaurar una copia de seguridad o contactar con soporte.
Con un poco de paciencia y siguiendo estos pasos, tu tienda volverá a funcionar en poco tiempo. ¡No te desanimes! La mayoría de los errores de conexión se resuelven en menos de 30 minutos.
[INFO] Si necesitas ayuda adicional, no dudes en dejar un comentario o contactar con el soporte técnico de tu hosting. Ellos tienen acceso directo al servidor y pueden ayudarte a resolver el problema más rápido.
