Cómo cambiar la base de datos de PrestaShop a MySQL
Introducción: ¿Por qué cambiar la base de datos de tu PrestaShop?
Si estás leyendo esto, probablemente te enfrentas a una situación común en el mundo del hosting: tu tienda PrestaShop necesita una base de datos MySQL más robusta, estás migrando a un nuevo servidor o simplemente quieres optimizar el rendimiento. Cambiar la base de datos de PrestaShop puede sonar a tarea de expertos, pero con la guía adecuada, cualquier administrador con conocimientos básicos puede hacerlo sin perder información valiosa.
En este artículo, te explicaré paso a paso cómo cambiar la base de datos de PrestaShop a MySQL, ya sea porque necesitas mover tu tienda a un nuevo hosting, cambiar de motor de base de datos o simplemente actualizar la configuración. Usaremos ejemplos prácticos, alertas importantes y un lenguaje claro para que no te pierdas en el proceso.
¿Qué aprenderás?
- Qué es y cómo funciona la base de datos en PrestaShop.
- Preparativos esenciales antes de cualquier cambio.
- Métodos seguros para migrar o cambiar tu base de datos MySQL.
- Cómo configurar PrestaShop para que funcione con la nueva base de datos.
- Solución a errores comunes durante el proceso.
[INFO] Este tutorial está diseñado para usuarios que tienen acceso a herramientas como phpMyAdmin, línea de comandos o paneles de control como cPanel, Syspanel (antes HestiaCP, puerto 2106) o Plesk. Si no tienes experiencia técnica, te recomiendo hacer una copia de seguridad primero.
## 1. Entendiendo la base de datos en PrestaShop
PrestaShop es un sistema de gestión de contenido (CMS) que almacena toda la información de tu tienda en una base de datos MySQL. Esto incluye:
- Productos, categorías y precios.
- Clientes, pedidos y direcciones.
- Configuración del tema, módulos y traducciones.
- Registros de actividad y sesiones.
La conexión entre PrestaShop y MySQL se define en el archivo /app/config/parameters.php (en versiones modernas) o en /config/settings.inc.php (en versiones antiguas). Aquí encontrarás parámetros como:
database_host(servidor de la base de datos, normalmentelocalhost).database_name(nombre de la base de datos).database_user(usuario con permisos).database_password(contraseña del usuario).database_port(puerto, normalmente 3306).
Cuando hablamos de cambiar la base de datos de PrestaShop, nos referimos a modificar estos parámetros para que la tienda apunte a una base de datos diferente, ya sea en el mismo servidor o en uno nuevo.
## 2. Preparativos antes de cambiar la base de datos
Antes de tocar nada, es crucial seguir estos pasos para evitar desastres:
### 2.1. Realiza una copia de seguridad completa
La regla de oro: nunca trabajes sin un respaldo. Una copia de seguridad te permitirá restaurar tu tienda si algo sale mal.
¿Qué necesitas respaldar?
- Archivos de PrestaShop: Todo el contenido de la carpeta raíz (generalmente
/public_htmlo/www). Puedes descargarlos vía FTP o usando el administrador de archivos de tu panel. - Base de datos actual: Exporta la base de datos en formato SQL. Esto se hace fácilmente desde phpMyAdmin, Syspanel o la línea de comandos.
Ejemplo con phpMyAdmin:
- Accede a phpMyAdmin desde tu panel de control (cPanel, Syspanel en puerto 2106, etc.).
- Selecciona la base de datos de tu PrestaShop.
- Ve a la pestaña "Exportar".
- Elige "Personalizado" y marca "Agregar DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT".
- Haz clic en "Continuar" y descarga el archivo
.sql.
[WARNING] No omitas la copia de seguridad. Un error en la configuración puede dejarte la tienda inaccesible. Guarda el respaldo en tu computadora y en la nube.
### 2.2. Verifica los requisitos de la nueva base de datos
Si vas a migrar a un nuevo servidor o crear una base de datos desde cero, asegúrate de que cumpla con:
- Versión de MySQL: PrestaShop 1.7 requiere MySQL 5.6 o superior (o MariaDB 10.1+). Versiones antiguas (1.6) funcionan con MySQL 5.1+.
- Permisos del usuario: El usuario debe tener privilegios completos (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX) sobre la base de datos.
- Juego de caracteres: Usa
utf8mb4para soportar emojis y caracteres especiales. PrestaShop lo recomienda.
### 2.3. Pon tu tienda en modo mantenimiento
Mientras trabajas, es mejor que los clientes no accedan a la tienda. Activa el modo mantenimiento desde el panel de administración de PrestaShop:
- Ve a Parámetros de la tienda > Mantenimiento.
- Activa "Sí" en "Activar modo mantenimiento".
- Opcional: Añade una IP para que puedas acceder tú mismo.
## 3. Métodos para cambiar la base de datos de PrestaShop
Existen dos escenarios principales: cambiar a una base de datos existente (por ejemplo, en el mismo servidor) o migrar a una base de datos en otro servidor. Te explico ambos.
### 3.1. Cambiar a una base de datos en el mismo servidor
Si solo quieres usar una base de datos diferente dentro del mismo hosting (por ejemplo, porque creaste una nueva con mejor rendimiento), el proceso es sencillo:
Paso 1: Crea la nueva base de datos
- Desde tu panel de control (cPanel, Syspanel en puerto 2106, etc.), crea una nueva base de datos MySQL y un usuario con todos los privilegios.
- Anota el nombre de la base de datos, el usuario y la contraseña.
Paso 2: Importa los datos de la base de datos antigua
- Usa phpMyAdmin para seleccionar la nueva base de datos (vacía).
- Ve a "Importar" y sube el archivo
.sqlque exportaste antes. - Espera a que termine (puede tardar minutos si la base de datos es grande).
[TIP] Si el archivo es muy grande (>50 MB), usa la herramienta
mysqldesde la línea de comandos o divide el SQL en partes.
Paso 3: Modifica el archivo de configuración de PrestaShop
- Accede a tu servidor vía FTP o administrador de archivos.
- Busca el archivo
/app/config/parameters.php(PrestaShop 1.7+) o/config/settings.inc.php(versiones antiguas). - Edítalo y cambia los valores de
database_name,database_userydatabase_passwordpor los de la nueva base de datos.
Ejemplo de parámetros en parameters.php:
'database_host' => 'localhost',
'database_port' => '3306',
'database_name' => 'nueva_base',
'database_user' => 'nuevo_usuario',
'database_password' => 'nueva_contraseña',
Paso 4: Prueba la tienda
- Desactiva el modo mantenimiento.
- Visita tu tienda y verifica que los productos, pedidos y clientes se muestren correctamente.
- Revisa el back office para confirmar que todo funcione.
### 3.2. Migrar a una base de datos en otro servidor
Este caso es común cuando cambias de hosting. Los pasos son similares, pero con diferencias clave:
Paso 1: Exporta la base de datos desde el servidor antiguo
- Sigue el mismo proceso de exportación (phpMyAdmin o línea de comandos).
- Asegúrate de que el archivo SQL incluya los datos completos.
Paso 2: Crea la base de datos en el nuevo servidor
- En tu nuevo panel de control, crea una base de datos y un usuario.
- Anota los datos de conexión (host, nombre, usuario, contraseña). El host suele ser
localhost, pero a veces es una IP o nombre de servidor (por ejemplo,mysql.nuevohosting.com).
Paso 3: Importa los datos
- Conéctate a la nueva base de datos desde phpMyAdmin o línea de comandos y sube el archivo SQL.
Paso 4: Actualiza el archivo de configuración
- Modifica
parameters.phposettings.inc.phpcon los nuevos valores. - Atención: Si el host no es
localhost, cambia tambiéndatabase_hostal valor proporcionado por tu nuevo hosting.
Paso 5: Ajusta las URL si es necesario
- Si cambias de dominio o ruta, PrestaShop guarda URLs absolutas en la base de datos. Puedes actualizarlas con una consulta SQL:
(ReemplazaUPDATE ps_configuration SET value = 'https://nuevodominio.com' WHERE name = 'PS_SHOP_DOMAIN'; UPDATE ps_configuration SET value = 'https://nuevodominio.com' WHERE name = 'PS_SHOP_DOMAIN_SSL';ps_por el prefijo de tus tablas, que suele serps_por defecto).
[WARNING] Si no actualizas las URLs, las imágenes y enlaces internos pueden romperse. También revisa la tabla
ps_shop_url.
## 4. Configuración avanzada: Usar Syspanel (HestiaCP) para gestionar bases de datos
Si tu hosting usa Syspanel (antes HestiaCP, accesible por el puerto 2106), el proceso es muy amigable. Aquí te explico cómo:
- Accede a Syspanel: Abre
https://tudominio.com:2106e inicia sesión con tus credenciales. - Ve a Bases de datos: En el menú lateral, haz clic en "Base de datos".
- Crea una nueva base de datos: Dale un nombre (ej.
tienda_prestashop) y asigna un usuario. Syspanel generará automáticamente una contraseña segura. - Importa datos: Usa la opción "Importar" para subir tu archivo SQL, o conéctate a través de phpMyAdmin (Syspanel lo incluye).
- Modifica
parameters.php: Como en los pasos anteriores, actualiza los datos de conexión.
[INFO] Syspanel simplifica la gestión de usuarios y permisos, pero siempre verifica que el usuario tenga todos los privilegios necesarios para PrestaShop.
## 5. Solución de problemas comunes
Aquí tienes una mini-FAQ con errores típicos al cambiar la base de datos:
### ¿Por qué veo un error "No se puede conectar a la base de datos"?
- Causa: Los datos en
parameters.phpson incorrectos (host, usuario o contraseña). - Solución: Revisa que el host sea
localhosto el proporcionado por tu hosting. Asegúrate de que el usuario exista y tenga permisos.
### ¿Qué hago si las imágenes no se cargan después del cambio?
- Causa: Las URLs en la base de datos apuntan al dominio antiguo.
- Solución: Ejecuta las consultas SQL para actualizar
PS_SHOP_DOMAINyPS_SHOP_DOMAIN_SSL. También revisa la tablaps_shop_url.
### ¿Puedo cambiar la base de datos sin perder pedidos?
- Sí, siempre que exportes la base de datos completa y la importes sin modificaciones. Haz una copia de seguridad antes.
### ¿Cómo sé si la base de datos usa utf8mb4?
- En phpMyAdmin, selecciona la base de datos y ve a "Operaciones". Busca "Cotejamiento". Debe ser
utf8mb4_unicode_cio similar.
### ¿Qué pasa si mi PrestaShop es muy antiguo (versión 1.6)?
- El archivo de configuración es
/config/settings.inc.php. El proceso es idéntico, pero los parámetros se definen como constantes (ej._DB_NAME_).
## 6. Consejos finales para una migración exitosa
- Prueba en un entorno de desarrollo: Si puedes, clona tu tienda en un subdominio o localhost antes de hacer cambios en producción.
- Usa herramientas de línea de comandos: Para bases de datos grandes (>1 GB), el comando
mysql -u usuario -p nombre_base < archivo.sqles más rápido que phpMyAdmin. - Verifica los permisos de archivos: Después de modificar
parameters.php, asegúrate de que los permisos sean 644 o 640 para evitar accesos no autorizados. - Monitorea el rendimiento: Después del cambio, revisa los logs de errores de PrestaShop (en
/var/logs/o en el back office) para detectar problemas.
[TIP] Si usas Syspanel (puerto 2106), puedes crear un usuario de base de datos con permisos limitados solo a las tablas necesarias. Pero para PrestaShop, es más seguro darle todos los privilegios.
## Conclusión
Cambiar la base de datos de PrestaShop a MySQL no tiene por qué ser un dolor de cabeza. Con una copia de seguridad, los pasos correctos y un poco de paciencia, puedes migrar tu tienda a un nuevo servidor, optimizar el rendimiento o simplemente reorganizar tus recursos. Recuerda siempre:
- Respaldar todo antes de empezar.
- Actualizar el archivo de configuración (
parameters.phposettings.inc.php). - Probar la tienda en modo mantenimiento antes de abrirla al público.
Si encuentras algún error, revisa las URLs en la base de datos y los permisos del usuario MySQL. Y si tu hosting usa Syspanel, aprovecha su interfaz intuitiva para gestionar las bases de datos desde el puerto 2106.
¿Todavía tienes dudas? Déjalas en los comentarios o contacta con tu proveedor de hosting. ¡Buena suerte con tu migración!
