Cómo conectar una base de datos MySQL a PrestaShop (configurar parámetros)
Introducción: La base de datos, el corazón de tu tienda
Si estás leyendo esto, es muy probable que te hayas encontrado con un mensaje de error bastante intimidante al instalar PrestaShop o al intentar migrar tu tienda a un nuevo servidor. Algo así como "Error de conexión a la base de datos" o "No se puede conectar al servidor de base de datos". No te preocupes, es uno de los pasos más comunes y, afortunadamente, uno de los más fáciles de solucionar si sabes exactamente qué datos necesitas y dónde encontrarlos.
Piensa en tu base de datos como el almacén central de tu tienda. Ahí se guardan todos tus productos, clientes, pedidos, precios y configuración. Sin una conexión correcta entre PrestaShop y ese almacén, la tienda no puede funcionar. En esta guía, te voy a explicar, paso a paso y sin tecnicismos innecesarios, cómo conectar prestashop mysql de forma correcta, cómo configurar base de datos prestashop desde cero y, lo más importante, cómo diagnosticar y arreglar el temido error conexión prestashop.
Vamos a desglosar los parámetros mysql que necesitas, dónde encontrarlos en tu panel de control (ya sea cPanel, Syspanel o similar) y cómo introducirlos correctamente en el instalador de PrestaShop. Al final de este artículo, tendrás tu tienda funcionando o sabrás exactamente qué archivo editar para que vuelva a la vida.
¿Qué necesitas antes de empezar?
Antes de lanzarnos a la piscina, asegurémonos de que tienes a mano todos los "ingredientes" de la receta. Conectar una base de datos no es magia, es cuestión de tener los datos correctos. No necesitas ser un experto en programación, solo necesitas acceso a dos sitios: tu panel de control de hosting y, si ya tienes una tienda creada, el administrador de archivos de tu servidor.
Estos son los parámetros mysql básicos que debes localizar:
- Nombre de la base de datos: Es el identificador único de tu almacén. Suele tener un prefijo con el nombre de tu usuario de hosting (ej:
usuario1234_mitienda). - Usuario de la base de datos: Es la persona que tiene la llave para entrar al almacén. Puede ser el mismo que el nombre de la base de datos o uno diferente (ej:
usuario1234_adminbd). - Contraseña del usuario: La llave que valida que eres tú quien entra. Debe ser segura y única.
- Host de la base de datos (Servidor): Es la dirección donde vive el almacén. Normalmente es
localhosto127.0.0.1, pero en algunos hostings gestionados puede ser una dirección comomysql.tudominio.comolocalhost:3306(el puerto es opcional). - Prefijo de tabla: Un identificador que se añade al principio de cada tabla para evitar conflictos si compartes servidor. Por defecto, PrestaShop usa
ps_, pero puedes cambiarlo por seguridad.
[WARNING] No confundas el usuario de la base de datos con tu usuario de acceso al panel de control del hosting. Son cosas totalmente distintas. El usuario de la base de datos solo tiene permisos sobre esa base de datos concreta.
Paso 1: Localizar los parámetros en tu panel de control
Dependiendo de tu proveedor de hosting, el panel de control será diferente. Los dos más comunes son cPanel (el clásico) y Syspanel (cada vez más popular por su simplicidad). Vamos a ver cómo encontrar los datos en ambos.
### Encontrar los datos en cPanel
- Inicia sesión en tu cPanel.
- Busca la sección "Bases de Datos" o "MySQL® Databases".
- Aquí verás listadas todas tus bases de datos y usuarios. Si no has creado una, este es el momento. Crea una base de datos nueva y un usuario nuevo, y luego asígnale todos los privilegios a ese usuario sobre esa base de datos.
- Anota el nombre completo de la base de datos y del usuario. cPanel suele añadirte un prefijo con tu nombre de usuario principal (ej:
tuusuario_mibd). - El Host de la base de datos, en el 99% de los casos en cPanel, será
localhost. Si no lo es, lo encontrarás en la sección de información general o en un mensaje de bienvenida de tu proveedor.
### Encontrar los datos en Syspanel (HestiaCP)
Syspanel es un panel de control moderno e intuitivo que está ganando mucha tracción. Si tu hosting lo utiliza, el proceso es ligeramente diferente.
- Accede a tu panel Syspanel. Recuerda que la URL normalmente incluye el puerto 2106 (ej:
https://tudominio.com:2106). - Busca la sección de "Bases de Datos" en el menú lateral.
- Syspanel te permite crear la base de datos y el usuario en un solo paso. Verás un formulario con campos para "Base de datos", "Usuario" y "Contraseña". Una vez creados, los tendrás listados con sus nombres completos.
- Aquí, el Host también suele ser
localhost. En Syspanel, es muy raro que sea una dirección externa, a menos que tengas un servidor de bases de datos separado.
[INFO] Tanto en cPanel como en Syspanel, el puerto por defecto para MySQL es el 3306. No necesitas especificarlo a menos que tu proveedor te indique que uses uno diferente. Si es así, la sintaxis sería
localhost:3307(o el puerto que te digan).
Paso 2: Configurar los parámetros durante la instalación de PrestaShop
Este es el momento de la verdad. Has descargado PrestaShop, lo has subido a tu servidor y has comenzado la instalación. Llegas a la pantalla de "Configuración de la base de datos". Aquí es donde muchos se bloquean. Respira, es fácil.
- Motor de base de datos: Déjalo en "MySQL" o "MySQLi" (recomendado). Es la opción por defecto.
- Dirección del servidor: Introduce el Host que localizaste antes. Casi siempre será
localhost. - Nombre de la base de datos: Escribe el nombre completo que anotaste en el paso anterior. Asegúrate de que no haya errores tipográficos.
- Usuario de la base de datos: Introduce el usuario completo.
- Contraseña: Introduce la contraseña del usuario, no la de tu panel de control.
- Prefijo de las tablas: Puedes dejarlo como
ps_o cambiarlo a algo comoshop_oprestashop_para mayor seguridad. Si ya estás migrando una tienda, este prefijo debe coincidir con el de tu antigua base de datos.
Una vez rellenado, pulsa "Comprobar conexión". Si todo es correcto, verás un mensaje de éxito y podrás continuar con la instalación.
[TIP] Si estás migrando una tienda existente, no dejes que PrestaShop cree las tablas. Debes seleccionar la opción de "No, he traído mis datos" o similar, para que no intente sobrescribir tu información.
Paso 3: Resolver el "Error de conexión a la base de datos" en una tienda existente
¿Ya tenías tu tienda funcionando y de repente te muestra el error? Esto suele pasar después de mover el sitio a un nuevo hosting o al cambiar la contraseña de la base de datos. El problema no está en el instalador, sino en el archivo de configuración de PrestaShop. Este archivo se llama parameters.php y se encuentra en la carpeta app/config/ de tu instalación.
Aquí es donde entran en juego los parámetros mysql de tu servidor. Debes editar este archivo con los nuevos datos.
- Accede a tu servidor mediante FTP o el Administrador de Archivos de tu hosting.
- Navega hasta la carpeta
app/config/de tu PrestaShop. - Busca el archivo
parameters.phpy ábrelo con un editor de texto (como el Bloc de Notas o un editor de código). - Busca la sección que dice
'database_host','database_name','database_user'y'database_password'. - Sustituye los valores entre comillas por los nuevos datos que has localizado.
Así se vería la parte relevante del archivo (con datos ficticios):
'database_host' => 'localhost',
'database_name' => 'mi_usuario_mitienda',
'database_user' => 'mi_usuario_miusuario',
'database_password' => 'MiNuevaContraseñaSegura',
'database_prefix' => 'ps_',
- Guarda el archivo y súbelo de nuevo al servidor, sobrescribiendo el antiguo. Refresca tu tienda.
[WARNING] Asegúrate de no dejar espacios en blanco antes de
<?phpal principio del archivo y después de?>al final (si existe). Un solo espacio puede provocar un error de "headers already sent" y romper la tienda.
Errores comunes y cómo solucionarlos
A veces, aunque sigas los pasos al pie de la letra, las cosas fallan. Aquí tienes una lista de los problemas más habituales y su solución.
### "Access denied for user 'usuario'@'localhost'"
Este mensaje es muy claro: el usuario o la contraseña son incorrectos, o el usuario no tiene permisos sobre la base de datos.
- Solución: Vuelve a tu panel de control (cPanel o Syspanel) y verifica que el usuario existe y que tiene todos los privilegios asignados a la base de datos específica. A veces, al crear el usuario, olvidamos marcar la casilla de "Privilegios Globales" o "Todos los privilegios".
### "Unknown database 'nombre_base_datos'"
Significa que la base de datos que has escrito no existe en el servidor.
- Solución: Revisa que has escrito el nombre completo. En cPanel y Syspanel, el nombre suele tener un prefijo con tu usuario (ej:
tuusuario_mibd). Asegúrate de que lo has copiado tal cual, incluyendo el guion bajo.
### "Connection refused" o "No se puede conectar al servidor MySQL"
Este es más genérico y puede deberse a varias razones.
- El host es incorrecto: Aunque sea raro, tu proveedor puede usar un host distinto a
localhost. Revisa la documentación de tu hosting o el correo de bienvenida. - El servidor de bases de datos está caído: Contacta con tu proveedor de hosting para verificar que el servicio MySQL está activo.
- Puerto incorrecto: Si tu proveedor usa un puerto no estándar, debes especificarlo. Por ejemplo,
localhost:3307. En el archivoparameters.php, se añade un parámetro extra'database_port' => '3307'.
### Error al importar una base de datos existente
Si estás migrando y usas una herramienta como phpMyAdmin para importar un archivo .sql, es posible que el archivo sea demasiado grande o que tenga errores.
- Solución: Intenta importar el archivo en partes o usa herramientas de línea de comandos si tienes acceso SSH. En Syspanel, la herramienta de gestión de bases de datos suele ser más robusta que la de otros paneles.
Consejos de seguridad y buenas prácticas
Conectar la base de datos es solo el primer paso. Mantenerla segura es otra historia. Aquí van unos consejos rápidos:
- Usa contraseñas fuertes: Mezcla mayúsculas, minúsculas, números y símbolos. No uses fechas de nacimiento ni nombres de mascotas.
- Cambia el prefijo de las tablas: Si tu tienda aún no tiene datos, cambiar
ps_a algo más único (comomishop_) dificulta los ataques de inyección SQL dirigidos a tablas con nombres predecibles. - No uses el usuario
root: Crea un usuario específico para PrestaShop con permisos solo sobre su propia base de datos. Si alguien roba esas credenciales, no tendrá acceso al resto de tu servidor. - Haz copias de seguridad periódicas: Asegúrate de que tu hosting realiza copias de seguridad de la base de datos, o configura las tuyas propias. Es tu red de seguridad ante cualquier desastre.
[TIP] Si tu hosting te permite elegir entre MySQL y MariaDB, elige MariaDB. Es un reemplazo directo, más rápido y con mejor rendimiento en la mayoría de los casos, y PrestaShop funciona perfectamente con ambos.
Preguntas frecuentes (FAQ)
Para terminar, voy a responder a las dudas que más me suelen plantear los clientes sobre este tema.
¿Puedo usar una base de datos remota (de otro servidor) para mi PrestaShop?
Sí, técnicamente es posible. Solo necesitas el host, usuario y contraseña de esa base de datos remota. Sin embargo, no es recomendable a menos que sea necesario, porque la latencia entre servidores puede ralentizar mucho tu tienda. Además, muchos hostings bloquean las conexiones externas a MySQL por seguridad.
¿Qué hago si olvidé la contraseña de mi base de datos?
No puedes recuperarla, pero sí cambiarla. Ve a tu panel de control (cPanel o Syspanel), busca la sección de bases de datos MySQL, localiza el usuario y cambia su contraseña. Después, actualiza el archivo parameters.php de tu PrestaShop con la nueva contraseña.
¿Por qué PrestaShop me pide el "Prefijo de las tablas"?
Es una medida de seguridad y organización. Al añadir un prefijo personalizado, evitas que las tablas de tu tienda tengan nombres demasiado comunes (product, customer, etc.) que puedan ser adivinados fácilmente por atacantes.
Mi hosting usa Syspanel (HestiaCP), ¿el proceso es muy diferente?
No, para nada. El proceso es idéntico en esencia. La única diferencia es la interfaz del panel para crear la base de datos y el usuario. Recuerda que el acceso a Syspanel es a través del puerto 2106. Una vez que tienes los datos, el proceso de configurar base de datos prestashop es exactamente el mismo.
¿Qué significa el error "PDO MySQL driver not enabled"?
Esto no es un problema de conexión, sino de configuración del servidor. Significa que PHP no tiene activado el módulo PDO MySQL. Debes activarlo desde el panel de control de tu hosting (a veces se llama "Select PHP Version" o "PHP Extensions") o contactar con tu proveedor para que lo habiliten.
Conclusión
Conectar tu base de datos MySQL a PrestaShop no tiene por qué ser una pesadilla. Es cuestión de tener claros los parámetros mysql (host, usuario, contraseña y nombre de la BD) y saber dónde introducirlos, ya sea en el instalador o en el archivo app/config/parameters.php. Hemos visto cómo localizar estos datos en cPanel y en Syspanel (recuerda, puerto 2106), cómo solucionar los errores más comunes y algunos consejos de seguridad.
La próxima vez que veas un error conexión prestashop, ya sabrás exactamente por dónde empezar a mirar. Revisa los datos, verifica los permisos y, si todo está bien, el problema estará en el servidor. Con un poco de paciencia y esta guía, tu tienda volverá a estar en línea en cuestión de minutos. ¡Mucha suerte con tu negocio!
