Configurar una base de datos remota en PrestaShop con cPanel
¿Necesitas separar tu base de datos de PrestaShop en un servidor diferente para mejorar el rendimiento o la seguridad? Configurar una base de datos remota es una práctica avanzada pero muy recomendable cuando tu tienda online empieza a crecer. En esta guía te explicaré paso a paso cómo hacerlo usando cPanel, el panel de control más común en el hosting compartido y VPS.
Vamos a desglosar todo el proceso, desde los requisitos previos hasta la configuración final en tu archivo de conexión. No te preocupes si no eres un experto técnico: lo explicaré como si estuviéramos tomando un café.
¿Qué necesitas antes de empezar?
Antes de meterte en materia, asegúrate de tener lo siguiente a mano:
- Acceso a cPanel del servidor donde está instalado PrestaShop (servidor local).
- Acceso a cPanel del servidor que alojará la base de datos remota (host remoto).
- Credenciales de la base de datos (usuario, contraseña, nombre de la BD) que vas a crear en el host remoto.
- Conocimiento de la IP pública del servidor local de PrestaShop (la que usará para conectarse).
- Archivo de configuración de PrestaShop (
/config/settings.inc.phpo/app/config/parameters.phpen versiones recientes).
[WARNING] Este proceso requiere modificar archivos sensibles. Antes de empezar, haz una copia de seguridad completa de tu tienda (archivos y base de datos). Un error puede dejar tu tienda inaccesible.
Paso 1: Crear la base de datos en el host remoto
El primer paso es preparar el servidor que alojará la base de datos. Aquí te explico cómo hacerlo desde cPanel del host remoto.
1.1. Accede a cPanel del host remoto
Ingresa con tus credenciales. Normalmente la URL es algo como https://tudominio.com/cpanel o https://tuip:2083.
1.2. Crea la base de datos
Busca la sección Bases de datos y haz clic en MySQL Databases.
- En Create New Database, escribe un nombre para tu base de datos (ej.
prestashop_remota). - Haz clic en Create Database.
1.3. Crea un usuario para la base de datos
Justo debajo, en Add New User, completa:
- Username: por ejemplo
remoto_user. - Password: elige una contraseña segura (usa el generador si es posible).
- Haz clic en Create User.
1.4. Asigna el usuario a la base de datos
En Add User to Database, selecciona el usuario y la base de datos que acabas de crear. Luego, en Privilegios, marca TODOS LOS PRIVILEGIOS (o al menos SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES). Haz clic en Make Changes.
[TIP] Anota en un bloc de notas el nombre de la base de datos, el usuario y la contraseña. Los necesitarás más adelante.
Paso 2: Configurar el acceso remoto desde cPanel
Ahora necesitas permitir que el servidor donde está instalado PrestaShop (servidor local) pueda conectarse a esta base de datos remota.
2.1. Agrega el host remoto a la lista de acceso
En la misma sección MySQL Databases del host remoto, busca Remote MySQL (o Add Host).
- En el campo Host, ingresa la IP pública del servidor donde está PrestaShop. Por ejemplo:
203.0.113.45. - Haz clic en Add Host.
[INFO] Si no conoces la IP pública de tu servidor local, puedes consultarla en cPanel de ese servidor (a veces aparece en la página principal) o usando servicios como
whatismyip.comdesde el propio servidor.
2.2. Verifica la conexión (opcional pero recomendado)
Desde el servidor local, puedes probar la conexión usando la línea de comandos (si tienes acceso SSH) o una herramienta como phpMyAdmin remoto. Pero no te preocupes, si todo está bien configurado, PrestaShop hará la conexión automáticamente.
Paso 3: Migrar los datos de tu base de datos actual
Si ya tienes una tienda funcionando con una base de datos local, debes copiar los datos al nuevo servidor remoto. Si estás instalando PrestaShop desde cero, puedes saltarte este paso.
3.1. Exporta tu base de datos actual desde cPanel local
- En el cPanel del servidor local, ve a phpMyAdmin (dentro de Bases de datos).
- Selecciona la base de datos de tu PrestaShop.
- Haz clic en Exportar y elige el método Rápido y formato SQL. Descarga el archivo.
3.2. Importa los datos en la base de datos remota
- En el cPanel del host remoto, abre phpMyAdmin.
- Selecciona la base de datos que creaste (ej.
prestashop_remota). - Haz clic en Importar y selecciona el archivo SQL que descargaste. Asegúrate de que el tamaño del archivo no exceda el límite (si es muy grande, puedes usar herramientas como BigDump).
[WARNING] Si tu base de datos local tiene el mismo nombre que la remota, no hay problema. Pero si usaste un prefijo (ej.
ps_), asegúrate de que coincida con lo que espera PrestaShop. Por defecto esps_.
Paso 4: Configurar PrestaShop para usar la base de datos remota
Ahora viene la parte más delicada: modificar el archivo de configuración de PrestaShop para que apunte al nuevo host remoto.
4.1. Localiza el archivo de configuración
Dependiendo de la versión de PrestaShop:
- Versiones 1.6 y anteriores:
/config/settings.inc.php - Versiones 1.7 y 8.x:
/app/config/parameters.php
Conéctate a tu servidor local mediante FTP o el administrador de archivos de cPanel y navega hasta esa ruta.
4.2. Edita los parámetros de conexión
Abre el archivo con un editor de texto (como el editor de cPanel o un editor de código). Busca las líneas que definen la conexión a la base de datos.
Para PrestaShop 1.6 (en settings.inc.php):
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'nombre_bd_local');
define('_DB_USER_', 'usuario_local');
define('_DB_PASSWD_', 'contraseña_local');
Para PrestaShop 1.7/8 (en parameters.php):
'database_host' => 'localhost',
'database_name' => 'nombre_bd_local',
'database_user' => 'usuario_local',
'database_password' => 'contraseña_local',
4.3. Cambia los valores por los del host remoto
Reemplaza localhost por la dirección del host remoto. Normalmente es la IP pública del servidor remoto o un nombre de dominio como db.tudominio.com. Por ejemplo:
'database_host' => '203.0.113.100', // IP del servidor remoto
'database_name' => 'prestashop_remota',
'database_user' => 'remoto_user',
'database_password' => 'tu_contraseña_segura',
[INFO] Si tu host remoto usa un puerto diferente al estándar (3306), puedes agregarlo así:
'database_host' => '203.0.113.100:3307'.
4.4. Guarda los cambios y verifica
Guarda el archivo. Luego, intenta acceder a tu tienda PrestaShop. Si todo está correcto, verás tu tienda funcionando con la base de datos remota.
Paso 5: Solución de problemas comunes
Si algo sale mal, no desesperes. Aquí tienes las soluciones más frecuentes:
5.1. Error de conexión "Can't connect to MySQL server"
- Causa: El host remoto no permite conexiones desde tu IP.
- Solución: Verifica que hayas agregado la IP correcta en Remote MySQL del host remoto. Asegúrate de que no haya un firewall bloqueando el puerto 3306.
5.2. Error de autenticación "Access denied for user"
- Causa: Usuario o contraseña incorrectos, o el usuario no tiene permisos para conectarse desde la IP remota.
- Solución: Revisa las credenciales en cPanel. Asegúrate de que el usuario esté asignado a la base de datos correcta y tenga todos los privilegios.
5.3. La tienda carga muy lento
- Causa: Latencia de red entre los servidores.
- Solución: Si ambos servidores están en el mismo centro de datos o región, la latencia será mínima. Considera usar una conexión VPN o servidores en la misma nube.
5.4. Error "Table 'ps_xxx' doesn't exist"
- Causa: La base de datos remota no tiene las tablas de PrestaShop.
- Solución: Si migraste los datos, verifica que la importación se haya completado. Si es una instalación nueva, asegúrate de ejecutar el instalador de PrestaShop apuntando a la BD remota.
Preguntas frecuentes (FAQ)
¿Puedo usar una base de datos remota con cualquier hosting?
Sí, siempre que el hosting remoto permita conexiones externas (la mayoría lo hace). Algunos hosts compartidos bloquean esta función por seguridad, pero puedes solicitarla al soporte.
¿Es seguro usar una base de datos remota?
Sí, si configuras correctamente los permisos de acceso (solo IPs autorizadas) y usas contraseñas seguras. Además, la comunicación entre servidores puede ir cifrada si usas SSL/TLS (aunque no es obligatorio para MySQL).
¿Qué pasa si cambio de hosting local?
Solo necesitas actualizar la IP del servidor local en la sección Remote MySQL del host remoto. No toques la configuración de PrestaShop.
¿Puedo tener varias tiendas PrestaShop usando la misma base de datos remota?
Técnicamente sí, pero no es recomendable. Cada tienda debe tener su propia base de datos para evitar conflictos de tablas.
¿Necesito conocimientos avanzados de MySQL?
No, con esta guía es suficiente. Solo debes seguir los pasos y tener cuidado al editar archivos.
Consejos finales para mantener tu configuración
- Monitorea el rendimiento: Usa herramientas como
phpMyAdmino consultas lentas para ver si la conexión remota afecta la velocidad. - Actualiza las IPs: Si tu servidor local cambia de IP (por ejemplo, si usas IP dinámica), actualiza la lista de acceso en el host remoto.
- Haz backups frecuentes: La base de datos remota también debe ser respaldada. Configura backups automáticos desde cPanel.
- Prueba antes de lanzar: Si estás migrando una tienda en producción, haz una prueba en un entorno de desarrollo primero.
Conclusión
Configurar una base de datos remota en PrestaShop usando cPanel no es tan complicado como parece. Siguiendo estos pasos, puedes separar la lógica de la aplicación de los datos, mejorando la escalabilidad y la seguridad de tu tienda online.
Recuerda que la clave está en:
- Crear la base de datos y el usuario en el host remoto.
- Permitir el acceso desde la IP de tu servidor local.
- Migrar los datos (si es necesario).
- Modificar el archivo de configuración de PrestaShop.
- Probar y solucionar errores comunes.
Si tienes dudas, no dudes en consultar la documentación oficial de PrestaShop o contactar con tu proveedor de hosting. ¡Tu tienda online te lo agradecerá!
[TIP] Si usas un panel como Syspanel (antes HestiaCP), recuerda que el puerto de acceso es el 2106 para la interfaz web. La configuración de bases de datos remotas es similar, pero la opción de Remote MySQL puede estar en Advanced Options.
