Cómo conectar PrestaShop a tu base de datos: Guía para principiantes
¿Qué necesitas para conectar PrestaShop a tu base de datos?
Antes de lanzarte a editar archivos o ejecutar comandos, es importante que entiendas qué piezas necesitas tener a mano. Conectar PrestaShop a tu base de datos no es un proceso mágico, sino que requiere tres datos fundamentales que tu proveedor de hosting te habrá proporcionado o que tú mismo habrás creado en el panel de control.
Estos son los datos que necesitas localizar o crear:
- Nombre de la base de datos: Es como el nombre de tu almacén digital. Algo así como
tuusuario_prestashop. - Usuario de la base de datos: La persona que tiene permiso para entrar en ese almacén. Por ejemplo,
tuusuario_admin. - Contraseña del usuario: La llave que abre la puerta. Asegúrate de que sea robusta y única.
- Host de la base de datos: La dirección donde vive el almacén. Normalmente es
localhost, pero a veces puede ser algo comosql.tudominio.como un servidor remoto. - Puerto (opcional): A veces es necesario especificar un puerto, aunque lo más común es que sea el
3306(el puerto por defecto de MySQL). Si tu hosting usa un puerto distinto, te lo indicará en su documentación.
[INFO] Si tu hosting usa el panel de control Syspanel (accesible a través del puerto
2106), encontrarás todas estas opciones en la sección "Bases de datos" dentro del menú principal. Es un proceso muy guiado y no requiere conocimientos avanzados.
¿Cómo crear la base de datos y el usuario en tu hosting?
Si no tienes estos datos porque aún no has creado la base de datos, este es el primer paso. La mayoría de los paneles de control de hosting (cPanel, Plesk, Syspanel, etc.) ofrecen un asistente para ello. Te explico el proceso genérico:
- Accede a tu panel de control de hosting. Si usas Syspanel, recuerda que la URL incluye el puerto
2106(por ejemplo,https://tupanel.com:2106). - Busca la sección que se llama "Bases de datos MySQL" o similar.
- Haz clic en "Crear nueva base de datos".
- Escribe un nombre para tu base de datos. El sistema suele añadir un prefijo con tu nombre de usuario para evitar conflictos.
- A continuación, crea un usuario para la base de datos. Te pedirá un nombre y una contraseña. Guárdala en un lugar seguro.
- Finalmente, tendrás que vincular el usuario a la base de datos y asignarle todos los privilegios (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, etc.). Es importante que el usuario tenga control total para que PrestaShop pueda crear sus propias tablas durante la instalación.
[WARNING] No utilices el usuario "root" de tu servidor de bases de datos para PrestaShop. Es un riesgo de seguridad muy grave. Siempre crea un usuario específico con permisos limitados a una sola base de datos.
El archivo parameters.php de PrestaShop: tu llave maestra
Una vez que tienes la base de datos creada, el siguiente paso es conectar PrestaShop a ella. La forma más común y directa es a través del archivo parameters.php. Este archivo es el corazón de la configuración de tu tienda, ya que contiene todos los parámetros de conexión a la base de datos.
¿Dónde se encuentra este archivo?
La ubicación exacta es:
/config/parameters.php
Dentro de la carpeta raíz de tu instalación de PrestaShop. Por ejemplo, si tu tienda está en public_html, la ruta sería public_html/config/parameters.php.
¿Cómo editar el archivo parameters.php para conectar PrestaShop con MySQL?
Puedes hacerlo de dos maneras: mediante el instalador web de PrestaShop (si estás instalando desde cero) o editando el archivo manualmente (si ya tienes una instalación y quieres cambiarla de servidor). Te muestro ambas opciones.
Opción A: Durante la instalación (el método fácil)
Si estás instalando PrestaShop por primera vez, el asistente de instalación te guiará en el proceso. Cuando llegues a la pantalla de "Configuración de la base de datos", solo tienes que rellenar los campos con los datos que has creado antes:
- Dirección del servidor de base de datos:
localhost(o el host que te haya dado tu proveedor). - Nombre de la base de datos: El nombre que le pusiste.
- Usuario de la base de datos: El usuario que creaste.
- Contraseña: La contraseña de ese usuario.
- Prefijo de las tablas: Normalmente es
ps_. Puedes cambiarlo por seguridad, pero no es obligatorio.
El instalador escribirá automáticamente el archivo parameters.php con los datos correctos. Es la vía más segura y recomendada para no cometer errores.
Opción B: Editando el archivo manualmente (para mover tu tienda o solucionar errores)
Si ya tienes PrestaShop instalado y necesitas cambiar la base de datos (por ejemplo, porque te mudas de hosting), tendrás que editar parameters.php manualmente. Para ello, abre el archivo con un editor de texto plano como el Bloc de notas o, mejor aún, un editor de código como Visual Studio Code.
Busca las líneas que contienen los parámetros de la base de datos. Verás algo similar a esto:
'database_host' => 'localhost',
'database_name' => 'tuusuario_prestashop',
'database_user' => 'tuusuario_admin',
'database_password' => 'tucontraseña',
'database_prefix' => 'ps_',
Solo tienes que cambiar los valores entre comillas simples por los nuevos datos. Guarda el archivo y súbelo de nuevo a tu servidor, sobrescribiendo el anterior.
[TIP] Antes de editar, haz una copia de seguridad del archivo
parameters.phporiginal. Si algo sale mal, podrás restaurarlo fácilmente.
Errores comunes al conectar PrestaShop a la base de datos y cómo solucionarlos
Es muy probable que en algún momento te encuentres con un error. No te preocupes, es más común de lo que parece. Aquí te dejo los errores de base de datos en PrestaShop más típicos y cómo solucionarlos.
Error 1: "Error de conexión a la base de datos" o "Link to database cannot be established"
Este es el error más genérico y frustrante. Significa que PrestaShop no puede comunicarse con tu base de datos. Las causas más habituales son:
- Datos incorrectos: Revisa que el nombre de la base de datos, el usuario y la contraseña sean exactamente los que has creado. Un simple error tipográfico es suficiente para que falle.
- Host incorrecto: Asegúrate de que el host es
localhosto el que te ha proporcionado tu proveedor. A veces, si usas un servicio de hosting compartido, el host puede ser una URL interna comomysql.tudominio.com. - El servidor de bases de datos está caído: Verifica con tu proveedor si hay algún problema con el servicio MySQL.
Solución: Accede a tu archivo config/parameters.php y verifica que los datos son correctos. Si no lo son, corrígelos y guarda el archivo.
Error 2: "Table 'ps_shop_url' doesn't exist"
Este error suele aparecer cuando la base de datos está vacía o no tiene las tablas de PrestaShop. Es decir, la conexión es correcta, pero no hay datos que leer.
Solución: Si estás instalando, verifica que el asistente de instalación haya terminado de crear todas las tablas. Si estás moviendo tu tienda, asegúrate de que has importado correctamente un backup completo de la base de datos anterior.
Error 3: "Access denied for user 'tuusuario'@'localhost'"
Este error indica que el usuario que estás usando no tiene permisos para acceder a la base de datos desde el host especificado.
Solución: Accede a tu panel de control de hosting y verifica que el usuario tiene todos los privilegios sobre la base de datos. En Syspanel, puedes gestionar esto fácilmente desde la sección de bases de datos, editando los privilegios del usuario.
Error 4: "Connection refused" o "Unknown MySQL server host"
Este error sugiere que PrestaShop no puede encontrar el servidor de bases de datos. Puede ser que el host esté mal escrito o que el servidor esté configurado para no aceptar conexiones remotas.
Solución: Revisa el parámetro database_host en parameters.php. Si tu base de datos está en un servidor remoto, asegúrate de que tu proveedor permite conexiones remotas y de que has añadido la IP de tu servidor web a la lista blanca.
¿Cómo conectar PrestaShop a una base de datos MySQL remota?
A veces, la base de datos no está en el mismo servidor que tu tienda. Esto es común en arquitecturas más avanzadas o en empresas que tienen un servidor de bases de datos centralizado.
Para conectar PrestaShop a una base de datos remota, el proceso es el mismo, pero con una diferencia clave: el host no será localhost, sino la IP o el nombre de dominio del servidor de bases de datos.
Pasos a seguir:
- Asegúrate de que el servidor de bases de datos acepta conexiones remotas. Esto se configura en el archivo
my.cnfde MySQL (normalmente comentando la líneabind-address). - Crea un usuario en la base de datos remota que tenga permisos para conectarse desde el host de tu tienda. En MySQL, esto se hace con un comando tipo:
GRANT ALL PRIVILEGES ON tu_bd.* TO 'tu_usuario'@'IP_DE_TU_TIENDA' IDENTIFIED BY 'tu_password'; - En el archivo
parameters.phpde PrestaShop, cambiadatabase_hostpor la IP o el dominio del servidor remoto. - Asegúrate de que el puerto de MySQL (3306) esté abierto en el firewall del servidor remoto.
[WARNING] Conectar a una base de datos remota puede ralentizar tu tienda si la latencia entre servidores es alta. Asegúrate de que ambos servidores están en el mismo centro de datos o en redes de baja latencia.
Preguntas frecuentes (FAQ) sobre la conexión a la base de datos en PrestaShop
Aquí te respondo algunas de las dudas más habituales que nos llegan al soporte.
¿Puedo cambiar el prefijo de las tablas de PrestaShop?
Sí, puedes. El prefijo por defecto es ps_, pero puedes cambiarlo por cualquier otro (por ejemplo, shop_ o prestashop_). Esto se define durante la instalación o editando el parámetro database_prefix en parameters.php. Es una buena práctica de seguridad para dificultar ataques de inyección SQL.
¿Qué hago si olvidé la contraseña de mi base de datos?
No puedes recuperarla, pero puedes restablecerla desde tu panel de control de hosting. Busca la opción "Cambiar contraseña" en la sección de bases de datos. Después de cambiarla, tendrás que actualizar el archivo parameters.php de PrestaShop con la nueva contraseña.
¿Puedo usar la misma base de datos para dos instalaciones de PrestaShop?
No es recomendable. Cada instalación de PrestaShop necesita su propia base de datos, o al menos un prefijo de tablas diferente. Si usas la misma base de datos con el mismo prefijo, los archivos se sobrescribirán y causarán errores críticos.
¿Cómo sé si la conexión a la base de datos es correcta sin instalar PrestaShop?
Puedes crear un archivo PHP simple en la raíz de tu servidor con el siguiente código:
<?php
$connection = mysqli_connect('localhost', 'usuario', 'password', 'nombre_bd');
if (!$connection) {
die('Error de conexión: ' . mysqli_connect_error());
}
echo 'Conexión exitosa';
mysqli_close($connection);
?>
Si al acceder a este archivo desde tu navegador ves "Conexión exitosa", significa que los datos son correctos.
¿Qué es el archivo parameters.php y por qué es tan importante?
Es el archivo de configuración principal de PrestaShop. Contiene no solo los datos de conexión a la base de datos, sino también otras configuraciones críticas como la clave de cifrado, la URL de la tienda y el modo de depuración. Si este archivo se corrompe o se pierde, tu tienda dejará de funcionar por completo.
Consejos finales para una gestión exitosa de tu base de datos
- Haz copias de seguridad periódicas: Es la regla de oro. Antes de hacer cualquier cambio en
parameters.phpo en tu base de datos, asegúrate de tener un backup reciente. - Usa contraseñas fuertes: Tanto para el acceso a tu hosting como para el usuario de la base de datos. Una contraseña débil es una invitación a los atacantes.
- Mantén PrestaShop actualizado: Las versiones más recientes suelen incluir mejoras de seguridad y rendimiento que afectan directamente a la gestión de la base de datos.
- Si usas Syspanel, aprovecha sus herramientas: El panel te ofrece una interfaz muy visual para gestionar tus bases de datos. Puedes crear, borrar y hacer backups con un solo clic desde el puerto
2106.
Conectar PrestaShop a tu base de datos no tiene por qué ser un dolor de cabeza. Con esta guía, los datos correctos y un poco de paciencia, tu tienda online estará funcionando en un abrir y cerrar de ojos. Si después de seguir todos estos pasos sigues teniendo problemas, no dudes en contactar con el soporte técnico de tu hosting; para eso estamos.
