Cómo conectar PrestaShop a su base de datos
¿Por qué PrestaShop necesita una base de datos?
PrestaShop es un sistema de gestión de contenidos (CMS) muy potente, pero no guarda la información de tu tienda en archivos sueltos. Toda la información importante —productos, clientes, pedidos, contraseñas, precios y configuración— se almacena en un motor de bases de datos, normalmente MySQL o MariaDB.
Piensa en la base de datos como el cerebro de tu tienda online. Sin una conexión correcta, PrestaShop no puede leer ni escribir información, y por tanto no puede funcionar. Cuando ves un error del tipo "Error de conexión a la base de datos" o "PrestaShop no puede conectarse a la base de datos", significa que el archivo de configuración no tiene los datos correctos o que el servidor de bases de datos no está accesible.
En este artículo te voy a explicar, paso a paso y sin tecnicismos complicados, cómo conectar PrestaShop a su base de datos. Veremos qué archivo debes modificar, qué datos necesitas y cómo solucionar los errores más comunes.
¿Qué es el archivo settings.inc.php?
El archivo settings.inc.php es el corazón de la configuración de PrestaShop. Se encuentra en la carpeta config de tu instalación, normalmente en una ruta similar a esta:
/public_html/config/settings.inc.php
En este archivo se guardan las credenciales de acceso a la base de datos, el nombre del servidor, el usuario, la contraseña y el prefijo de las tablas. Sin estos datos, PrestaShop no sabe dónde buscar la información.
Antes de tocar nada, es fundamental que hagas una copia de seguridad de este archivo. Si cometes un error al editarlo, puedes dejar tu tienda inaccesible. Así que, primero: descarga una copia de settings.inc.php a tu ordenador.
Estructura del archivo settings.inc.php
Un archivo típico tiene este aspecto:
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'tu_base_de_datos');
define('_DB_USER_', 'tu_usuario');
define('_DB_PASSWD_', 'tu_contraseña');
define('_DB_PREFIX_', 'ps_');
define('_MYSQL_ENGINE_', 'InnoDB');
Cada línea define una constante que PrestaShop utiliza para conectarse. Vamos a ver qué significa cada una:
- DB_SERVER: Es la dirección del servidor de bases de datos. Normalmente es "localhost" si la base de datos está en el mismo servidor que tu web, pero puede ser una IP o un nombre de host si usas un servicio externo.
- DB_NAME: Es el nombre exacto de la base de datos que creaste en tu panel de hosting.
- DB_USER: El usuario que tiene permisos para acceder a esa base de datos.
- DB_PASSWD: La contraseña de ese usuario.
- DB_PREFIX: El prefijo que se añade a las tablas. Por defecto es "ps_", pero puede variar.
- MYSQL_ENGINE: El motor de almacenamiento, normalmente InnoDB.
Datos que necesitas antes de empezar
Para conectar PrestaShop a su base de datos, necesitas tener a mano estos datos:
- Nombre de la base de datos (por ejemplo:
tienda_db) - Usuario de la base de datos (por ejemplo:
tienda_user) - Contraseña del usuario (la que pusiste al crear el usuario)
- Servidor de la base de datos (normalmente
localhosto127.0.0.1) - Prefijo de las tablas (si no lo cambiaste, será
ps_)
Si tienes tu hosting con Syspanel, recuerda que el acceso al panel de control se realiza a través del puerto 2106. Desde ahí podrás gestionar tus bases de datos, crear usuarios y ver la información necesaria para la conexión.
Paso a paso: Cómo conectar PrestaShop a su base de datos
Paso 1: Localiza el archivo settings.inc.php
Accede a tu hosting mediante FTP o a través del administrador de archivos de Syspanel. Busca la carpeta config dentro del directorio raíz de tu instalación de PrestaShop. El archivo settings.inc.php está ahí.
Paso 2: Haz una copia de seguridad
Antes de modificar nada, descarga el archivo a tu ordenador o haz una copia en otra carpeta. Esto te permitirá restaurarlo si algo sale mal.
Paso 3: Edita el archivo
Abre el archivo con un editor de texto plano como el Bloc de notas, Notepad++ o Sublime Text. No uses procesadores de texto como Word, ya que pueden añadir caracteres invisibles que rompan el código.
Busca las líneas que empiezan por define('_DB_SERVER_' y modifica los valores según los datos de tu base de datos.
Por ejemplo, si tu base de datos se llama mishop, tu usuario es admin_shop y tu contraseña es ClaveSegura123, el archivo debería quedar así:
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'mishop');
define('_DB_USER_', 'admin_shop');
define('_DB_PASSWD_', 'ClaveSegura123');
define('_DB_PREFIX_', 'ps_');
[WARNING]
Ten mucho cuidado con las comillas. Deben ser comillas simples (') y no dobles ("). Un error típico es copiar y pegar desde un documento de Word, que introduce comillas curvas que PrestaShop no reconoce.
Paso 4: Guarda los cambios y sube el archivo
Guarda el archivo con la codificación UTF-8 sin BOM (si tu editor te lo permite). Luego súbelo a tu servidor, reemplazando el archivo original.
Paso 5: Verifica la conexión
Abre tu tienda en el navegador. Si todo ha ido bien, verás tu tienda funcionando con normalidad. Si aparece un error, revisa los siguientes puntos.
Errores comunes al conectar PrestaShop a la base de datos
Error: "Error de conexión a la base de datos"
Este es el error más común. Significa que PrestaShop no puede comunicarse con el servidor de bases de datos. Las causas más frecuentes son:
- El servidor no es "localhost": Algunos hosts usan un nombre de servidor distinto, como
mysql.tudominio.com. Revisa la información de tu hosting. - El usuario o la contraseña son incorrectos: Vuelve a comprobar que los has escrito bien, sin espacios y con las mayúsculas correctas.
- La base de datos no existe: Asegúrate de que el nombre de la base de datos es exacto y que la has creado previamente.
- El usuario no tiene permisos: El usuario debe tener todos los privilegios sobre la base de datos. Si no estás seguro, desde Syspanel puedes otorgar permisos completos.
[TIP]
Si tienes dudas sobre si los datos son correctos, prueba a conectarte a la base de datos desde la herramienta phpMyAdmin que suele venir en Syspanel. Si puedes acceder con esos datos, el problema está en el archivo de configuración.
Error: "PrestaShop no puede conectarse a la base de datos"
Este error es similar al anterior, pero puede deberse a:
- El archivo settings.inc.php no tiene permisos de lectura: Asegúrate de que el archivo tiene permisos 644 o 444.
- El archivo está vacío o corrupto: Si la copia se subió mal, el archivo puede estar incompleto. Vuelve a subir el archivo desde tu copia de seguridad.
- La base de datos está caída: Si tu proveedor de hosting tiene problemas con MySQL, no podrás conectar. Espera unos minutos y reintenta.
Error: "La base de datos no existe"
Este error suele aparecer cuando el nombre de la base de datos es incorrecto. Revisa que has escrito exactamente el nombre que aparece en tu panel de control. A veces se añade un prefijo con el nombre del usuario, como usuario_basededatos.
Cómo configurar PrestaShop después de un cambio de servidor
Si has cambiado de hosting o has migrado tu tienda a otro servidor, es muy probable que tengas que actualizar la conexión. El proceso es el mismo que hemos descrito, pero debes asegurarte de que los datos de la nueva base de datos son correctos.
Además, si has movido la base de datos, es posible que necesites importar un archivo SQL con todos tus datos. En Syspanel puedes hacer esto desde la sección de bases de datos, importando el archivo .sql que exportaste previamente.
[INFO]
En Syspanel, el acceso al panel de control se hace a través del puerto 2106. Desde ahí podrás gestionar tus bases de datos, crear usuarios y ver la información necesaria para la conexión.
Preguntas frecuentes (FAQ)
¿Puedo cambiar el prefijo de las tablas?
Sí, pero no es recomendable hacerlo a menos que sepas lo que estás haciendo. El prefijo se usa en todas las tablas de la base de datos. Si lo cambias, tendrás que modificar también todas las tablas existentes. Es un cambio avanzado que puede romper tu tienda si no se hace bien.
¿Qué hago si no recuerdo la contraseña de la base de datos?
Puedes restablecerla desde Syspanel. Busca la sección de bases de datos, selecciona la base de datos y cambia la contraseña del usuario. Luego actualiza el archivo settings.inc.php con la nueva contraseña.
¿Es seguro tener la contraseña en texto plano en el archivo settings.inc.php?
Es una práctica habitual en PrestaShop y en la mayoría de los CMS. La seguridad se basa en que el archivo no sea accesible desde el exterior. Asegúrate de que los permisos del archivo son correctos (644) y de que tu servidor está configurado para no mostrar archivos .php como texto.
¿Puedo conectar PrestaShop a una base de datos remota?
Sí, es posible. Solo tienes que cambiar el valor de _DB_SERVER_ por la IP o el nombre del servidor remoto. Sin embargo, ten en cuenta que la conexión será más lenta y que algunos hosts bloquean las conexiones externas por seguridad.
¿Qué pasa si mi archivo settings.inc.php no existe?
Si el archivo no existe, es probable que tu instalación de PrestaShop esté corrupta o que no se haya instalado correctamente. La solución más sencilla es reinstalar PrestaShop, pero si tienes una copia de seguridad de la base de datos, puedes crear un archivo nuevo con los datos de conexión.
Consejos finales para una conexión exitosa
- Siempre haz una copia de seguridad antes de modificar cualquier archivo de configuración.
- Usa un editor de texto plano y no procesadores de texto.
- Verifica que los datos son correctos probando la conexión con phpMyAdmin.
- Si no estás seguro de qué datos usar, contacta con el soporte de tu hosting. Ellos pueden proporcionarte la información exacta.
- Después de modificar el archivo, borra la caché de PrestaShop para que los cambios surtan efecto. Puedes hacerlo desde el panel de administración en Parámetros avanzados > Rendimiento, o borrando manualmente la carpeta
var/cachesi no tienes acceso al panel.
Conectar PrestaShop a su base de datos es un proceso sencillo si sabes qué archivo tocar y qué datos necesitas. Con esta guía, espero que hayas podido resolver tu problema y que tu tienda esté funcionando de nuevo.
Si tienes más dudas, no dudes en consultar la documentación oficial de PrestaShop o contactar con tu proveedor de hosting. ¡Buena suerte con tu tienda online!
