Cómo resolver el error 'Cannot connect to MySQL server' en PrestaShop
¿Qué significa el error "Cannot connect to MySQL server" en PrestaShop?
Si estás leyendo esto, es muy probable que hayas visto este mensaje en la pantalla de tu tienda online y te hayas llevado un buen susto. Tranquilo, no eres el primero al que le pasa y, sobre todo, tiene solución.
El error "Cannot connect to MySQL server" en PrestaShop es uno de los avisos más comunes (y temidos) entre los dueños de tiendas online. Básicamente, significa que tu tienda no puede comunicarse con la base de datos donde se almacenan todos tus productos, pedidos, clientes y configuraciones. Sin esa conexión, PrestaShop no puede funcionar.
Pero, ¿por qué ocurre? Las causas pueden ser varias: desde un cambio de contraseña en el hosting, un fallo temporal del servidor, hasta un archivo de configuración corrupto. La buena noticia es que, en la mayoría de los casos, puedes resolverlo tú mismo siguiendo estos pasos, sin necesidad de ser un experto en programación.
Vamos a desglosar este problema de error MySQL PrestaShop paso a paso, con un lenguaje claro y sencillo. Al final, tendrás un plan de acción completo para que tu tienda vuelva a estar online en pocos minutos.
Primeros auxilios: verifica si el problema es general o solo tuyo
Antes de tocar nada, es fundamental saber si el problema es un fallo temporal del servidor o si está en tu configuración. Sigue estos pasos en orden:
- Prueba a acceder al panel de administración de tu tienda (normalmente en
/admino la URL que configuraste). Si el error aparece también ahí, el problema es general. - Revisa si otras páginas de tu mismo hosting funcionan. Si tienes otras webs en el mismo servidor, compruébalas. Si también fallan, es muy probable que el problema sea del servidor, no de tu tienda.
- Contacta con tu proveedor de hosting. Si el paso anterior confirma que el servidor está caído o tiene problemas con MySQL, ellos deberían poder solucionarlo o darte más información. Muchas veces, es un simple reinicio del servicio de base de datos.
Si después de esto el problema persiste y solo afecta a tu tienda PrestaShop, sigue leyendo, porque el problema está en la configuración de tu tienda.
La causa más común: el archivo parameters.php
Cuando ocurre un error MySQL PrestaShop, el primer lugar donde debemos mirar es el archivo de configuración. PrestaShop guarda los datos de acceso a la base de datos en un archivo llamado parameters.php. Si este archivo tiene datos incorrectos, tu tienda no podrá conectar.
¿Cómo encontrar y revisar el archivo parameters.php?
Para acceder a él, necesitas un gestor de archivos. Puedes usar el Administrador de Archivos de tu panel de hosting (como cPanel, Plesk o Syspanel) o un cliente FTP como FileZilla. Te explicamos con Syspanel, que es el panel que usamos en nuestro hosting:
- Accede a tu panel de control Syspanel (recuerda, el puerto de acceso es el 2106).
- Busca la sección de "Administrador de Archivos".
- Navega hasta la carpeta raíz de tu tienda PrestaShop. Normalmente es
public_html,htdocso una carpeta personalizada. - Dentro, busca la carpeta
app/config/. - Ahí encontrarás el archivo
parameters.php. Haz clic derecho y selecciona "Editar" o "Ver/Editar".
¿Qué debo buscar dentro del archivo?
Dentro de este archivo verás una serie de líneas con datos como 'database_host', 'database_name', 'database_user' y 'database_password'. Estos son los datos de conexión.
Verifica que estos valores sean exactamente los que te proporcionó tu proveedor de hosting. Un error muy común es que la contraseña haya cambiado o tenga caracteres especiales que se hayan copiado mal.
[TIP] Si no estás seguro de cuáles son tus datos de MySQL, puedes encontrarlos en el panel de control de tu hosting (Syspanel, cPanel, etc.) en la sección de "Bases de Datos MySQL". Compara los valores y corrígelos en el archivo si es necesario.
[WARNING] Ten mucho cuidado al editar este archivo. Un solo carácter mal puesto (una coma, un punto y coma, una comilla) puede romper tu tienda por completo. Si no te sientes seguro, haz una copia de seguridad del archivo antes de modificarlo.
Solución paso a paso para el error "Cannot connect to MySQL server"
Ahora que ya sabes qué es, vamos a la acción. Sigue estos pasos en orden, del más simple al más complejo.
Paso 1: Verifica las credenciales de la base de datos
Este es el paso más común y el que soluciona el 80% de los casos.
- Accede a tu archivo
parameters.phpcomo te explicamos antes. - Comprueba estos cuatro campos:
database_host: Normalmente eslocalhost, pero a veces puede ser una IP como127.0.0.1o un nombre de servidor específico.database_name: El nombre exacto de tu base de datos.database_user: El usuario de la base de datos.database_password: La contraseña de ese usuario.
- Si alguno de estos datos es incorrecto, corrígelo y guarda el archivo.
- Intenta acceder de nuevo a tu tienda.
[TIP] Si tu hosting usa cPanel o Syspanel, puedes cambiar la contraseña de la base de datos desde el panel. Si lo haces, deberás actualizar también el archivo
parameters.phpcon la nueva contraseña.
Paso 2: Comprueba que el servicio MySQL esté activo
A veces, el error no es por culpa de tu configuración, sino porque el servicio de base de datos se ha detenido en el servidor.
- Accede a tu panel de control de hosting (Syspanel, recuerda, puerto 2106).
- Busca la sección de "Servicios" o "Gestión de Servicios".
- Localiza el servicio de MySQL o MariaDB.
- Verifica que esté en estado "Activo" o "Corriendo". Si está detenido, inícialo.
Si no encuentras esta opción, contacta con tu proveedor de hosting y pregunta si el servicio MySQL está activo.
Paso 3: Verifica el archivo .htaccess
El archivo .htaccess es un archivo de configuración especial de Apache. Si está dañado, puede provocar errores en la conexión a la base de datos.
- En el Administrador de Archivos de tu hosting, ve a la raíz de tu tienda.
- Busca el archivo
.htaccess(asegúrate de que la opción de "Mostrar archivos ocultos" esté activada). - Renómbralo a algo como
.htaccess.bak. Esto lo desactivará temporalmente. - Intenta acceder a tu tienda. Si funciona, el problema era el
.htaccess.
[WARNING] Si renombras el
.htaccess, PrestaShop lo regenerará automáticamente cuando entres al panel de administración. No te preocupes si ves que se crea un nuevo archivo.
Paso 4: Revisa los permisos de los archivos
Los permisos de archivos y carpetas son importantes en Linux. Si son incorrectos, PrestaShop puede tener problemas para leer la configuración.
- En el Administrador de Archivos, selecciona la carpeta raíz de tu tienda.
- Busca la opción de "Permisos" o "Chmod".
- Asegúrate de que las carpetas tengan permisos
755y los archivos tengan permisos644. - Puedes aplicar estos permisos de forma recursiva a todas las carpetas y archivos.
[INFO] Si no sabes cómo cambiar los permisos de forma recursiva, puedes hacerlo desde un cliente FTP como FileZilla. Selecciona todos los archivos y carpetas, haz clic derecho y elige "Permisos de archivos...". Luego aplica los valores.
Paso 5: Revisa los logs de error
Si nada de lo anterior funciona, es hora de mirar los registros de error. Estos archivos contienen información detallada sobre lo que está fallando.
- En el Administrador de Archivos, busca la carpeta
var/logs/dentro de la raíz de tu tienda. - Ahí encontrarás archivos como
prod.logodev.log. - Descarga o abre el archivo
prod.log(el de producción). - Busca las últimas líneas. Puede que encuentres un mensaje más específico sobre el error de conexión a MySQL.
[TIP] Si los logs no te dicen nada, puedes activar el modo de depuración de PrestaShop temporalmente. Para ello, edita el archivo
defines.inc.phpen la carpetaconfig/y cambia_PS_MODE_DEV_defalseatrue. Esto mostrará errores detallados en la pantalla. No olvides revertir el cambio cuando termines.
Paso 6: Verifica la IP del servidor de base de datos
En algunos hostings, la base de datos no está en el mismo servidor que tu web. En ese caso, el campo database_host no será localhost, sino una dirección IP o un nombre de host.
- Revisa la información que te dio tu proveedor de hosting.
- Asegúrate de que el
database_hostenparameters.phpcoincida exactamente con esa información. - Si tu hosting permite conexiones remotas a MySQL, verifica que tu IP actual esté en la lista blanca.
Paso 7: Reconstruye el archivo parameters.php
Si el archivo está muy dañado, puedes intentar reconstruirlo. Esto es un poco más avanzado, pero es una solución efectiva.
- Haz una copia de seguridad del archivo actual.
- Crea un nuevo archivo
parameters.phpcon el siguiente contenido base, reemplazando los valores con los tuyos:
<?php
return array(
'parameters' => array(
'database_host' => 'localhost',
'database_port' => '3306',
'database_name' => 'TU_NOMBRE_DE_BASE',
'database_user' => 'TU_USUARIO',
'database_password' => 'TU_CONTRASEÑA',
'database_prefix' => 'ps_',
'database_engine' => 'InnoDB',
'cookie_key' => 'GENERA_UNA_CLAVE_ALEATORIA',
'cookie_iv' => 'GENERA_OTRA_CLAVE',
'new_cookie_key' => 'GENERA_UNA_CLAVE_MAS',
),
);
[WARNING] Este es un paso avanzado. Si no te sientes cómodo, es mejor que contactes con soporte técnico. Un error aquí puede dejar tu tienda completamente inaccesible.
¿Qué hago si nada de esto funciona?
Si has seguido todos los pasos y el error MySQL PrestaShop persiste, es momento de pedir ayuda profesional.
- Contacta con tu proveedor de hosting. Ellos tienen acceso al servidor y pueden verificar si hay problemas más profundos, como un fallo en el disco o en la configuración del servidor.
- Contacta con un desarrollador de PrestaShop. Si el problema es específico de tu instalación, un experto podrá analizar los logs y encontrar la causa raíz.
Preguntas frecuentes (FAQ) sobre el error de conexión a MySQL
¿Por qué mi tienda PrestaShop no conecta con MySQL después de cambiar la contraseña de la base de datos?
Porque el archivo parameters.php aún tiene la contraseña antigua. Debes actualizar este archivo con la nueva contraseña. Es uno de los errores PrestaShop más comunes.
¿El error "Cannot connect to MySQL server" puede deberse a un ataque informático?
Es poco probable, pero no imposible. Un ataque podría modificar tu archivo de configuración. Por eso es importante revisar los permisos de los archivos y mantener tu PrestaShop actualizado.
¿Puedo solucionar este error sin acceso al panel de administración?
Sí, la mayoría de las soluciones que hemos visto se hacen a través del Administrador de Archivos del hosting, no del panel de PrestaShop.
¿Qué es el puerto 2106 y por qué lo mencionas?
El puerto 2106 es el puerto de acceso al panel de control Syspanel (nuestro panel de hosting). Si tu hosting usa Syspanel, deberás usar este puerto para acceder a la gestión de archivos, bases de datos y servicios.
¿Cómo puedo prevenir este error en el futuro?
- Realiza copias de seguridad periódicas de tu base de datos y archivos.
- Anota los cambios que hagas en las contraseñas de tu hosting.
- Mantén PrestaShop actualizado a la última versión.
- No modifiques archivos de configuración sin hacer una copia de seguridad antes.
Esperamos que esta guía te haya sido de gran ayuda. Recuerda que la calma es tu mejor aliada. Con paciencia y siguiendo estos pasos, tu tienda volverá a estar operativa. Si tienes más dudas, no dudes en consultar nuestra sección de tutoriales o contactar con nuestro equipo de soporte. ¡Buena suerte!
