PrestaShop: Cómo cambiar la base de datos en settings.inc.php
¿Tu tienda PrestaShop está dando errores de conexión a la base de datos? ¿Has cambiado de hosting o has creado una nueva base de datos MySQL y ahora no sabes cómo actualizar los datos en tu instalación? No te preocupes, es una operación más común de lo que parece y, con esta guía, la resolverás en pocos minutos.
En este artículo, te explicaré paso a paso, y de una forma muy visual y sencilla, cómo modificar el archivo settings.inc.php para actualizar la conexión a tu nueva base de datos. Olvídate del estrés, vamos a ello.
¿Qué es settings.inc.php y por qué es tan importante?
Piensa en settings.inc.php como el "cerebro de conexión" de tu PrestaShop. Es un archivo de configuración que contiene las credenciales y los datos necesarios para que tu tienda online se comunique con tu servidor de bases de datos MySQL.
Sin este archivo correctamente configurado, tu tienda no puede mostrar productos, procesar pedidos ni siquiera cargar la página de inicio. Es el puente entre tu código PHP y tus datos.
Este archivo se encuentra en la raíz de tu instalación de PrestaShop, normalmente en una carpeta llamada config. La ruta exacta suele ser:
/public_html/config/settings.inc.php
o si tienes una subcarpeta para tu tienda:
/public_html/tu-tienda/config/settings.inc.php
¿Cuándo necesito cambiar la base de datos en PrestaShop?
Hay varias situaciones típicas en las que te verás en la necesidad de editar este archivo:
- Cambio de hosting: Te mudas a un nuevo servidor y te han proporcionado una nueva base de datos con un usuario y contraseña diferentes.
- Nueva base de datos: Has creado una base de datos nueva (por ejemplo, para hacer una copia de seguridad o una tienda de pruebas) y quieres que tu tienda apunte a ella.
- Restauración de copia de seguridad: Has restaurado una copia de seguridad de tu base de datos en un servidor distinto y necesitas actualizar las credenciales.
- Cambio de contraseña: Has cambiado la contraseña de tu usuario de MySQL por seguridad y debes reflejarlo en PrestaShop.
- Mover tu tienda a otro dominio: Aunque esto implica más cambios, la conexión a la base de datos es uno de los primeros pasos.
Preparación: Lo que necesitas antes de empezar
Antes de lanzarnos a editar, es crucial que tengas a mano los siguientes datos de tu nueva base de datos:
- Nombre de la base de datos: (Ejemplo:
usuario123_mitienda). - Usuario de la base de datos: (Ejemplo:
usuario123_admin). - Contraseña del usuario: La contraseña asociada a ese usuario.
- Servidor de la base de datos (Host): Normalmente es
localhost, pero en algunos hostings puede ser una dirección comomysql.tudominio.como un IP.
También necesitarás un editor de texto plano (como el Bloc de notas, Sublime Text, Notepad++ o el editor de archivos de tu panel de control) y acceso a tu hosting a través de un Administrador de Archivos (como el de cPanel o Syspanel) o un cliente FTP (como FileZilla).
El método paso a paso para cambiar la base de datos en PrestaShop
Aquí viene la parte práctica. Sigue estos pasos con calma y verás que es muy sencillo.
Paso 1: Localiza y descarga el archivo settings.inc.php
- Accede a tu panel de control de hosting. Si usas Syspanel, recuerda que la URL de acceso es a través del puerto 2106 (ejemplo:
https://tudominio.com:2106). - Abre el Administrador de Archivos o conéctate por FTP.
- Navega hasta la carpeta
configde tu instalación de PrestaShop. - Busca el archivo
settings.inc.phpy descárgalo a tu ordenador. Es fundamental que hagas una copia de seguridad de este archivo en un lugar seguro antes de tocarlo. Si algo sale mal, podrás restaurarlo fácilmente.
[WARNING] Nunca edites el archivo directamente en el servidor sin haberlo descargado antes. Un error de sintaxis puede dejar tu tienda inaccesible.
Paso 2: Ábrelo con un editor de texto y entiende su contenido
Abre el archivo descargado con tu editor de texto. Verás un código PHP similar a este (los valores variarán en tu caso):
<?php
// Last update: 2023-10-26 10:30:00
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'mi_antigua_base');
define('_DB_USER_', 'mi_antiguo_usuario');
define('_DB_PASSWD_', 'mi_antigua_contraseña');
define('_DB_PREFIX_', 'ps_');
define('_MYSQL_ENGINE_', 'InnoDB');
define('_PS_CACHING_SYSTEM_', 'CacheMemcache');
// ... más líneas de configuración ...
No te asustes, solo nos interesan las primeras líneas. Estas son las que definen la conexión a la base de datos:
_DB_SERVER_: Es la dirección del servidor MySQL._DB_NAME_: Es el nombre de tu base de datos._DB_USER_: Es el nombre de usuario de MySQL._DB_PASSWD_: Es la contraseña de ese usuario._DB_PREFIX_: Es el prefijo de las tablas (normalmenteps_). No lo cambies a menos que sepas exactamente lo que haces y tu nueva base de datos use un prefijo diferente.
Paso 3: Modifica los datos de conexión
Ahora, con tus nuevos datos de la base de datos a mano, vamos a reemplazar los valores antiguos por los nuevos.
_DB_SERVER_: Cambia'localhost'por el servidor que te haya indicado tu proveedor de hosting. En la mayoría de los casos seguirá siendo'localhost'._DB_NAME_: Cambia'mi_antigua_base'por el nombre de tu nueva base de datos._DB_USER_: Cambia'mi_antiguo_usuario'por el usuario de tu nueva base de datos._DB_PASSWD_: Cambia'mi_antigua_contraseña'por la contraseña de tu nuevo usuario.
Ejemplo de cómo quedaría:
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'nueva_base_datos');
define('_DB_USER_', 'nuevo_usuario_db');
define('_DB_PASSWD_', 'nueva_contraseña_segura');
[TIP] Al guardar el archivo, asegúrate de que el editor no añada nada extra. Guárdalo como un archivo .php con codificación UTF-8 sin BOM (esto es lo más estándar y evita problemas).
Paso 4: Sube el archivo modificado al servidor
- Sube el archivo
settings.inc.phpmodificado a la misma carpeta de donde lo descargaste (/config/). - Sobrescribe el archivo existente. Tu cliente FTP o el Administrador de Archivos te preguntará si quieres sobrescribir. Acepta.
[WARNING] Es muy importante que el archivo se suba a la ruta exacta. Si lo subes a la raíz de tu dominio, no funcionará.
Paso 5: Verifica que tu tienda funciona correctamente
- Abre tu tienda en un navegador (usa una ventana de incógnito para evitar problemas de caché).
- Si la conexión es correcta, verás tu tienda con normalidad.
- Prueba a entrar al panel de administración (
/admin) y navega por algunas páginas para asegurarte de que todo funciona.
Solución de problemas comunes (FAQ)
Es posible que algo no funcione a la primera. No te preocupes, aquí tienes las soluciones a los problemas más habituales.
¿Por qué veo el error "Link to database cannot be established" (No se puede establecer el enlace con la base de datos)?
Este es el error más común. Significa que PrestaShop no ha podido conectarse a la base de datos. Las causas suelen ser:
- Credenciales incorrectas: Revisa que el nombre de la base de datos, el usuario y la contraseña estén escritos exactamente como te los proporcionó tu hosting. A veces los nombres incluyen el usuario de cPanel como prefijo (ej:
usuariocp_basededatos). - Servidor MySQL incorrecto: Asegúrate de que
_DB_SERVER_es el correcto. Prueba conlocalhostprimero. Si tu hosting usa un servidor externo, verifica el puerto (normalmente es 3306, pero podría ser otro). - El usuario no tiene permisos: El usuario de la base de datos debe tener todos los privilegios sobre la base de datos que vas a usar. Puedes verificarlo desde el panel de control de tu hosting (phpMyAdmin o similar).
¿He cambiado los datos y ahora mi tienda está en blanco?
Esto suele indicar un error de sintaxis en el archivo PHP.
- Revisa el archivo: Ábrelo de nuevo en tu editor y verifica que no hay espacios en blanco antes de
<?phpni después de?>. Asegúrate de que no has borrado ninguna comilla o punto y coma. - Restaura la copia: Si no encuentras el error, restaura la copia de seguridad que hiciste en el Paso 1 y vuelve a intentarlo con más cuidado.
¿Debo cambiar el prefijo _DB_PREFIX_?
No, en la gran mayoría de los casos no debes tocarlo. Este prefijo relaciona las tablas de tu base de datos con la instalación de PrestaShop. Si tu nueva base de datos es una copia exacta de la anterior, el prefijo será el mismo (normalmente ps_). Si lo cambias sin necesidad, tu tienda no encontrará las tablas y dejará de funcionar.
¿Cómo actualizo la conexión si no tengo acceso al Administrador de Archivos?
Si no tienes acceso al Administrador de Archivos, puedes usar un cliente FTP como FileZilla. El proceso es el mismo: descargar el archivo, editarlo y volver a subirlo.
[INFO] Si tu hosting usa Syspanel, la gestión de bases de datos y archivos se realiza desde el mismo panel. Recuerda que el acceso es a través del puerto 2106. Dentro de Syspanel, busca la sección "Archivos" o "Administrador de Archivos" y la sección "Bases de Datos" para crear o gestionar tu MySQL.
Consejos finales y buenas prácticas
- Siempre haz una copia de seguridad: Antes de cualquier cambio, no solo del archivo
settings.inc.php, sino de toda tu tienda y base de datos. Es tu red de seguridad. - Usa contraseñas seguras: Asegúrate de que la contraseña de tu base de datos sea robusta para evitar accesos no autorizados.
- Anota los cambios: Guarda en un lugar seguro las nuevas credenciales de la base de datos. Te serán útiles en el futuro.
- Si tienes dudas, contacta con tu hosting: Los datos de conexión (servidor, usuario, etc.) siempre te los proporciona tu proveedor de hosting. Si no los tienes claros, no adivines. Pregúntales.
Cambiar la base de datos en PrestaShop editando settings.inc.php es una tarea de mantenimiento fundamental. Con esta guía, ya tienes el conocimiento para hacerlo de forma segura y efectiva. ¡Esperamos que tu tienda vuelva a estar en línea sin problemas!
Recuerda que, si en algún momento te sientes abrumado, siempre puedes contar con el soporte técnico de tu proveedor de hosting para que te eche una mano. ¡Buena suerte con tu tienda!
