Software

Prestashop: «Link to database cannot be established»

El escenario, es el típico de una migración de Prestahop desde un hosting a otro. El técnico o cliente, procedente de otro hosting, ha preferido migrar por si mismo el contenido, desde el proveedor antiguo, al nuestro, siguiendo correctamente los pasos, como en nuestro tutorial Como mover Prestahop a otra cuenta de hosting, dejando la mismo tiempo que el sistema funcione en el servidor antiguo (1). Sin embargo, tras una verificación la ventana de su navegador le muestra el fatídico mensaje: «Link to database cannot be established»

 

Análisis de problemas relativos a la conexión de la base de datos de Prestashop

Proceso de análisis

Para analizar lo que esta ocurriendo, ya que pueden ser muchas las variables proponemos los siguientes pasos:

Configuración del modo debug de Prestashop

PrestaShop 1.5.3 a 1.6
    • Editamos el fichero config/defines.inc.php
    • Cambiamos false por true los siguientes valores:
define('_PS_MODE_DEV_', false);
define('_PS_MODE_DEV_', true);
PrestaShop 1.4 a 1.5.3
    • Editamos el fichero config/config.inc.php
    • Modificamos los siguientes valores:
@ini_set('display_errors', 'on');
define('_PS_DEBUG_SQL_', true);

A partir de ahora, Prestashop nos mostrará más información sobre el o los problema/s.

En el caso que nos ocupa el mensaje es el siguiente:

Warning: mysql_connect(): Access denied for user 'cpuser_pshop'@'localhost' (using password: YES) in /home//public_html/prestashop/classes/MySQL.php on line 34  Link to database cannot be established.
  • Use Google copiando el mensaje de error, añadiendo al principio de la búsqueda «Prestashop«. Un bueno truco consiste en eliminar del mensaje mostrado aquellas partes que se notan que son internas (paths (directorios), nombre de servidor, nombres de usuario, …) que no van a producir información relevante y van a ofuscar nuestra búsqueda. Las búsquedas deben hacerse de la forma mas fácil, y ir dificultándolas a medida que no encontramos solución, por exceso de datos devueltos.
  • Una vez finalizado, y solucionado el problema no olvide, volver a dejar el sistema sin el modo debug activado.

Verificación de los datos de conexión a la base de datos de Prestashop

Lo primero que deberemos hacer es verificar es que nuestro Prestashop tiene los datos de conexión a la base de datos bien configurados.

    • Verificación de los datos del fichero config/settings.inc.php
define('_DB_NAME_', 'cpuser_prestashop1_1');
define('_MYSQL_ENGINE_', 'InnoDB');
define('_DB_SERVER_', 'dominios.tld');
define('_DB_USER_', 'cpuser_pshop');
define('_DB_PREFIX_', 'prefijo_');
define('_DB_PASSWD_', 'MKq·$Dz-#8{');
define('_DB_TYPE_', 'MySQL');
  • Tratamos de acceder con esos datos a nuestra base de datos, mediante phpMyAdmin, o shell. En el caso de Cpanel, no servirá phpMyAdmin pues el acceso se hace mediante el usuario de Cpanel. La mejor manera es una comprobación en el shell, pero tu proveedor de hosting debe permitirte el acceso SSH, algo no muy usual en la mayoría de los empresas de alojamiento de páginas web.
    Planes de hosting con SSH activado
    En Castris si te permitimos el acceso por SSH (Consulta nuestros planes) para algunos planes premium
  • Si no podemos verificar, el acceso a mediante shell o phpMyAdmin, verificaremos que el usuario, tiene la contraseña y los permisos asignados en nuestro panel de control.

Si una vez realizadas las verificaciones persiste el problema, entonces es que algo se nos escapa. ¿Qué puede ser?

Entre otras cosas, estas migrando un sitio de un servidor a otro, y tu configuración contiene una llamada al servidor MySQL diferente a localhost:

define('_DB_SERVER_', 'dominios.tld');

Por tanto, pese a que tu este visualizando el sito nuevo, el intenta conectarse a la base de datos, del sitio actual o en producción, que probablemente tiene distinto user y/o password.

Para evitar esto deberemos cambiar el valor de la linea a localhost(2)

define('_DB_SERVER_', 'localhost');

 

(1) La mejor manera de operar con migraciones, es realizarlas de forma que los contenidos de producción, y el de la nueva ubicación (valido también para entornos de desarrollo-producción) se prueben de manera real, sin el uso de alternativas como el uso de la dirección url basada en el usuario de Apache servidor.tld/~user/. Para ello puede utilizar tips como la modificación del fichero hosts de su sistema operativo, o el uso de plugin y complementos para su navegador, que le permitirán pasar de un entorno a otro.

(2) En un entorno de desarrollo-producción lo ideal es que las bases de datos y el usuario sean el mismo, y que las versiones de Apache+PHP sean las mismas y tengan los mismo módulos que use Prestashop o nuestro software.


Imagen Polygonal background with wavy shapes Designed – Freepik design byHarryArts

Comparte este artículo

Artículo Antiguo
Este artículo tiene más de 2 años. Es muy probable que su contenido este anticuado, aunque pueda ser de utilidad, es conveniente que revises otras informaciones al respecto. Si lo encuentras útil o crees que puede ser actualizado, deja tu comentario con la actualización para poder editarlo y que pueda ser útil a los demás.

Comparte este articulo en

Abkrim

Yo solo se que no se nada, y que me paso la vida aprendiendo

Entradas recientes

Fatal error: Allowed memory size of 268435456 bytes exhausted en WordPress. Otro post más… pero diferente

No es la primera vez que me encuentro con el agotamiento de la memoria en…

5 meses hace

Problemas de Acceso con Centos 7, Almalinux 8, Ubuntu 20.04, y Debian 10/11: Un Enigma Firewall CSF

Descubre cómo solucionar problemas de acceso a servidores con Centos 7, Almalinux 8, Ubuntu 20.04…

9 meses hace

MySQL no inicia debido a errores en la base de datos interna de MySQL

Uno de los mensajes más alarmantes que puedes encontrarte es aquel que indica que tu…

11 meses hace

Actualización de seguridad 6.2.1 para WordPress y la importancia de los backups confiables

La seguridad de nuestro sitio web es de vital importancia en el mundo digital actual.…

12 meses hace

El mito de los ficheros SVG inseguros en las subidas de ficheros

Los ficheros SVG son archivos gráficos vectoriales escalables ampliamente utilizados en diseño web. Aunque no…

12 meses hace

Solución de problemas de errores 500 en Castris Hosting: una guía para usuarios de cPanel

En este artículo, te guiamos en la solución de problemas de errores 500 en Castris…

12 meses hace