Cómo resolver el error 'Cannot connect to MySQL' en PrestaShop con Plesk
¡Hola! Si estás leyendo esto, probablemente te has encontrado con el temido mensaje de error "Cannot connect to MySQL" (No se puede conectar a MySQL) en tu tienda PrestaShop alojada en un servidor con Plesk. No te preocupes, no eres el único y, en la gran mayoría de los casos, tiene una solución sencilla que puedes aplicar tú mismo sin necesidad de ser un experto en servidores.
En esta guía extensa y paso a paso, vamos a desglosar las causas más comunes de este problema y te enseñaré a solucionarlas una por una. Desde los errores típicos de configuración hasta los problemas de permisos, al final de este artículo tendrás todas las herramientas para que tu tienda vuelva a estar operativa.
Vamos a ello.
Entendiendo el error: ¿Qué significa "Cannot connect to MySQL"?
Antes de lanzarnos a tocar archivos, es fundamental entender qué nos quiere decir PrestaShop. Este error ocurre cuando tu tienda (el código PHP) intenta comunicarse con la base de datos (MySQL) donde se almacenan todos tus productos, clientes y pedidos, pero la conexión es rechazada o no se puede establecer.
Piensa en ello como si intentaras entrar en tu casa (la base de datos) con una llave (los datos de conexión). Si la llave no es la correcta, si la cerradura está cambiada o si no tienes permiso para entrar, la puerta no se abrirá y te quedará fuera.
En el contexto de Plesk, este error puede aparecer por varias razones, pero las más habituales son:
- Datos de acceso incorrectos en el archivo de configuración
parameters.php. - El servicio de MySQL no está funcionando en el servidor.
- El usuario de la base de datos no tiene los permisos adecuados o su contraseña ha cambiado.
- Problemas con el host de la base de datos (a veces se usa
localhosty debe ser otro valor). - Espacio en disco lleno en el servidor, lo que impide que MySQL funcione correctamente.
Vamos a abordarlas todas, de la más simple a la más compleja.
Paso 1: Verificar el estado del servicio MySQL en Plesk
Lo primero que debemos hacer es comprobar si el motor de base de datos está vivo. A veces, por mantenimiento o un fallo puntual, el servicio se detiene.
Accediendo al administrador de servicios de Plesk
- Inicia sesión en tu panel de control de Plesk.
- En la barra lateral izquierda, busca la sección "Herramientas y ajustes" (o "Tools & Settings").
- Dentro de esa sección, busca el apartado "Estado del servidor" o "Servicios". En versiones recientes de Plesk, a menudo puedes ver el estado de los servicios directamente en el panel de inicio.
- Busca la entrada que dice "MySQL" o "MariaDB" (depende de lo que tengas instalado).
- Verifica que el estado sea "activo" o "running" (en ejecución).
[WARNING] Si el estado aparece en rojo o dice "detenido", no intentes forzar la conexión desde PrestaShop. Primero, haz clic en el botón para iniciar el servicio. Si no se inicia, puede que el problema sea más profundo y necesites contactar con tu proveedor de hosting, ya que podría ser un problema de configuración del servidor.
Si el servicio estaba detenido y lo has iniciado, prueba a recargar tu tienda. Es muy probable que el error haya desaparecido.
Paso 2: Revisar y corregir el archivo de configuración (parameters.php)
Si el servicio de MySQL está activo, el siguiente paso es revisar la "llave" que usa PrestaShop para abrir la puerta. Esta llave se encuentra en un archivo llamado parameters.php. Es el corazón de la configuración de tu tienda.
Localizando el archivo
Este archivo se encuentra en la carpeta app/config/ de la instalación de PrestaShop. Para acceder a él, tienes dos opciones:
- A través del Administrador de archivos de Plesk: En el panel de tu dominio, busca la sección "Archivos" y navega hasta la carpeta
httpdocs(o la carpeta raíz de tu tienda). Dentro, busca la carpetaapp, luegoconfigy ahí encontrarásparameters.php. - A través de FTP: Si prefieres usar un cliente FTP como FileZilla, conecta a tu servidor y navega a la misma ruta.
Editando el archivo
Una vez localizado, haz clic derecho sobre él y selecciona "Editar" (o descárgalo y edítalo con un editor de texto plano como Notepad++).
Verás un contenido similar a este (aunque con tus datos):
<?php
return array (
'parameters' => array (
'database_host' => 'localhost',
'database_port' => '',
'database_name' => 'tu_basededatos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
'database_prefix' => 'ps_',
// ... otros parámetros
),
);
[INFO] Los campos clave que debes revisar son database_host, database_name, database_user y database_password. Cualquier discrepancia aquí causará el error "Cannot connect to MySQL PrestaShop".
¿Cómo saber cuáles son los datos correctos?
- Ve a tu panel de Plesk.
- Busca la sección "Bases de datos" (normalmente en el menú de tu dominio).
- Verás una lista de bases de datos. La que corresponde a tu tienda suele tener un nombre similar al de tu dominio o un prefijo específico.
- Haz clic en el nombre de la base de datos. Aquí verás el nombre de la base de datos y el nombre de usuario asociado.
- Si no recuerdas la contraseña, tendrás que cambiarla desde aquí. Plesk te permite restablecerla. Hazlo y guarda la nueva contraseña.
Ahora, compara estos datos con los de tu archivo parameters.php. Si no coinciden, corrígelos. Presta mucha atención a que no haya espacios en blanco ni comillas extra.
[TIP] Un error muy común es que el database_host sea localhost cuando en Plesk, a veces, se necesita una dirección IP como 127.0.0.1 o un nombre de host específico. Si localhost no funciona, prueba con 127.0.0.1.
Guarda el archivo y vuelve a intentar cargar tu tienda.
Paso 3: Verificar los permisos del usuario de la base de datos
A veces, los datos de acceso son correctos, pero el usuario de la base de datos no tiene los permisos necesarios para conectarse desde el servidor web. En Plesk, esto se gestiona desde la propia base de datos.
Añadiendo permisos al usuario
- En Plesk, ve a la sección "Bases de datos" y haz clic en el nombre de la base de datos de tu tienda.
- Busca la pestaña o sección de "Usuarios".
- Asegúrate de que el usuario que estás utilizando en el
parameters.phpestá en la lista. - Haz clic en el nombre del usuario. Se abrirá una ventana donde puedes ver los privilegios.
- Para simplificar y evitar problemas, selecciona la opción de "Todos los privilegios" o asegúrate de que al menos estén marcados los de SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX y DROP.
[WARNING] Otorgar "Todos los privilegios" es seguro para un entorno de tienda estándar, pero si tienes conocimientos avanzados de seguridad, puedes limitarlos. Para resolver el error de conexión, lo más rápido es dar todos los permisos.
Guarda los cambios y prueba de nuevo.
Paso 4: Comprobar el espacio en disco del servidor
Un problema que a menudo se pasa por alto es la falta de espacio en disco. Cuando el disco está lleno, MySQL no puede crear los archivos temporales necesarios para funcionar, lo que resulta en errores de conexión.
Cómo comprobar el espacio en Plesk
- En el panel de Plesk, mira la barra lateral izquierda. A menudo, hay un indicador de uso de disco del servidor.
- También puedes ir a "Herramientas y ajustes" y luego a "Gestión del servidor" o "Uso del disco".
- Si ves que el disco está al 90% o más, este es probablemente tu problema.
Solución
Si este es el caso, necesitas liberar espacio. Puedes:
- Eliminar copias de seguridad antiguas en Plesk.
- Vaciar la papelera del administrador de archivos.
- Revisar logs antiguos que ya no necesites.
- Contactar con tu proveedor para ampliar el plan de hosting.
Una vez que liberes espacio, reinicia el servicio de MySQL (como en el Paso 1) y tu tienda debería volver a la vida.
Paso 5: Verificar el puerto de conexión a MySQL
Aunque es menos común, a veces el puerto de MySQL no es el estándar (3306). En entornos de hosting compartido o con Plesk, a veces se configura un puerto diferente por razones de seguridad.
¿Cómo saber el puerto?
- En Plesk, ve a "Herramientas y ajustes".
- Busca la sección "Configuración del servidor" o "Parámetros del servidor".
- Encontrarás una línea que dice "Puerto del servidor de bases de datos" o similar.
Si el puerto no es 3306, deberás añadirlo en tu archivo parameters.php. Después de la línea de database_host, añade una línea como esta:
'database_port' => '3307', // Sustituye por el puerto que veas en Plesk
Vuelve a guardar y prueba la conexión.
Paso 6: Aprovechar el "Reparador" de PrestaShop (último recurso)
Si has probado todo lo anterior y sigues con el problema, PrestaShop tiene una herramienta de diagnóstico que puede ayudarte a encontrar el error exacto.
Usando el instalador para diagnosticar
- Descarga el archivo de instalación de PrestaShop de la versión que tienes instalada.
- Sube el contenido del archivo ZIP a la carpeta raíz de tu tienda (sobrescribiendo los archivos existentes, es seguro).
- En tu navegador, ve a
tudominio.com/install/. - El instalador detectará que ya hay una tienda instalada y te ofrecerá la opción de "Reparar la tienda" o "Restaurar la base de datos".
- Sigue el asistente. En uno de los pasos, te pedirá los datos de conexión a la base de datos. Si los introduces correctamente, el instalador te indicará si puede conectarse o no.
- Si el instalador se conecta, el problema puede estar en los archivos de tu instalación, no en la base de datos. Si no se conecta, el problema es de configuración del servidor y deberías contactar con tu soporte.
[INFO] Esta herramienta es muy útil porque te da un diagnóstico más preciso. Si el instalador no puede conectarse con los datos que introduces, el error es de permisos o de credenciales. Si se conecta, el problema es que tu archivo parameters.php está dañado o es incorrecto.
Preguntas Frecuentes (FAQ) sobre el error de conexión MySQL
Para finalizar, vamos a resolver algunas dudas comunes que surgen con este error.
¿Este error puede borrar mis datos?
No. El error "Cannot connect to MySQL" solo indica que la aplicación no puede leer o escribir en la base de datos en ese momento. Tus datos (productos, pedidos, clientes) siguen intactos en la base de datos. Una vez que se restablece la conexión, todo vuelve a estar disponible.
¿Por qué ocurre después de mover mi tienda a otro servidor?
Es el caso más común. Al mover la tienda, los datos de conexión en el parameters.php suelen quedar obsoletos. Es el primer archivo que debes revisar, tal y como hemos hecho en el Paso 2.
¿Qué pasa si tengo un plan de hosting con Syspanel?
Si tu hosting se gestiona con Syspanel, el proceso es muy similar al de Plesk, pero el acceso al panel es diferente. Recuerda que para acceder a Syspanel, debes usar el puerto 2106 (por ejemplo, tudominio.com:2106). Una vez dentro, busca las secciones de "Bases de datos" y "Archivos" para aplicar los mismos pasos de esta guía. La lógica es idéntica.
¿Debo contactar con mi proveedor de hosting?
Si has seguido todos los pasos y el error persiste, sí. Es posible que haya un problema a nivel de servidor que no puedes resolver desde el panel de control. Al contactar con ellos, diles que has revisado el archivo parameters.php, los permisos de la base de datos y el estado del servicio MySQL, y que el error continúa. Esto les dará una pista muy clara de por dónde empezar a buscar.
Espero que esta guía extensa te haya sido de gran ayuda. Recuerda que la paciencia y la revisión metódica son tus mejores aliadas. La mayoría de las veces, el error "Cannot connect to MySQL PrestaShop" se resuelve simplemente con una revisión de los datos de acceso en el archivo de configuración. Si has llegado hasta aquí, ya tienes un conocimiento muy sólido para enfrentarte a este problema. ¡Mucha suerte con tu tienda!
