Daniel López Azaña

Tema

Social Media

Blog

GNU/Linux, Open Source, Cloud Computing, DevOps y más...

ERROR: PleskFatalException – Unable to connect to database: saved admin password is incorrect.

plesk_8_3Tras contratar un nuevo servidor VPS a mi proveedor de alojamiento, he comprobado que mi acceso al panel de control Plesk funcionaba correctamente, pero no podía acceder a MySQL con el usuario admin y la misma contraseña de Plesk , por lo que no podía hacer nada con la base de datos desde la línea de comandos. Así, me he decidido a cambiar manualmente la contraseña del usuario admin a través del intérprete de comandos mysql. Tras hacer el cambio podía acceder perfectamente a MySQL, pero sin embargo el panel de control de Plesk ha dejado de funcionar, lanzando la siguiente excepción:

ERROR: PleskFatalException
Unable to connect to database: saved admin password is incorrect.

0: common_func.php3:150
	psaerror(string 'Unable to connect to database: saved admin password is incorrect.')
1: auth.php3:107
ERROR: PleskFatalException
Unable to connect to database: saved admin password is incorrect.

0: common_func.php3:150
	psaerror(string 'Unable to connect to database: saved admin password is incorrect.')
1: auth.php3:107

Buscando información en Internet sobre este problema, he encontrado numerosos sitios donde explicaban distintas soluciones, que resumiendo consistían en lo siguiente:

Solución 1

La contraseña del fichero /etc/psa/.psa.shadow utilizada para acceder a la base de datos del panel Plesk no coincide con la contraseña del usuario admin de la base de datos, por lo que es necesario cambiarla con los siguientes comandos:

~# export PSA_PASSWORD=<new_password>
~# /usr/local/psa/admin/bin/ch_admin_passwd </new_password>

Sin embargo, en mi caso esta solución no ha sido tal, ya que siempre recibo el siguiente mensaje de error, a pesar de que el demonio mysqld de la base de datos está corriendo correctamente:

Unable to connect to database: 1045

Solución 2

Puesto que no me es posible cambiar la contraseña de Plesk, pruebo a adaptar la contraeña de MySQL a la que ya existe en Plesk. Normalmente conoceremos dicha contraseña, pero si no es así, podemos ejecutar lo siguiente, aunque es muy posible que nos encontremos con el mismo error «Unable to connect to database: 1045» del punto anterior:

~# /usr/local/psa/bin/admin --show-password

Para solventarlo, acudiremos al fichero de configuración del motor de base de datos, normalmente /etc/mysql/my.cnf , y añadiremos la siguiente línea en la sección [mysqld]:

skip-grant-tables

Después reiniciaremos la base de datos así:

~# /etc/init.d/mysql restart

De este modo, le hemos dicho a MySQL que no haga comprobaciones de usuarios ni permisos, por lo que el comando «/usr/local/psa/bin/admin –show-password» ahora sí nos dirá cuál es la contraseña que tiene configurada Plesk, y al mismo tiempo podremos acceder a MySQL como usuario admin sin conocer la contraseña, lo que nos permitirá poner la que nosotros queramos.

Llegados a este punto la mayoría de las soluciones a este problema que he visto, incluida la solución oficial de Plesk (https://kb.parallels.com/112492) pasan por cambiar la contraseña del usuario admin así:

~# /usr/bin/mysql -D mysql -e"UPDATE user SET password=PASSWORD('`cat /etc/psa/.psa.shadow`') WHERE User='admin';"

Sin embargo, aunque es cierto que haciendo este cambio el panel de control Plesk vuelve a funcionar correctamente, desapareciendo la excepción «Unable to connect to database: saved admin password is incorrect» , cuando eliminamos de nuevo el parámetro skip-grant-tables de /etc/mysql/my.cnf para dejar las cosas como estaban, de nuevo MySQL no nos permite el acceso con la contraseña que tenemos configurada en Plesk.

Crear otro usuario con todos los privilegios de admin

El problema del intento de solución anterior es que estamos metiendo la contraseña cifrada del fichero /etc/psa/.psa.shadow en MySQL, no la contraseña que nosotros queremos utilizar. En algún lugar del binario /usr/local/psa/admin/bin/ch_admin_passwd o en otra parte de Plesk existe una anomalía que hace que no se asigne al usuario admin la contraseña en claro que nosotros hemos asignado a través del panel de control de Plesk (luego MySQL ya se encarga internamente de almacenarla cifrada), sino la contraseña cifrada de Plesk tal cual aparece en el fichero /etc/psa/.psa.shadow , por lo que siempre nos encontraremos dentro de un círculo vicioso en el que o bien podamos acceder a Plesk y no a la base de datos o viceversa.

Podemos resignarnos y aprendernos o anotar en algún sitio la contraseña cifrada de Plesk y acceder con ella a MySQL, cosas que podremos hacer sin ningún problema, aunque para poder utilizar nuestra contraseña de verdad , la que nosotros podemos recordar, y no esa secuencia insufrible de números y letras, la solución pasa por crear un nuevo usuario en MySQL con todos los privilegios del usuario admin :

mysql> CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

Ahora ya podremos administrar la base de datos con el usuario root y nuestra contraeña de siempre, y tener el panel de control Plesk funcionando a la perfección con el usuario admin.

MySQL Plesk
Daniel López Azaña

Sobre el autor

Daniel López Azaña

Emprendedor tecnológico y arquitecto cloud con más de 20 años de experiencia transformando infraestructuras y automatizando procesos.

Especialista en integración de IA/LLM, desarrollo con Rust y Python, y arquitectura AWS & GCP. Mente inquieta, generador de ideas y apasionado por la innovación tecnológica y la IA.

Artículos relacionados

sugarcrm-logo-100068038-large

Error de SugarCRM en búsquedas de tareas relacionadas con módulos personalizados con guiones bajos en su nombre

Cuando creamos un módulo personalizado en SugarCRM (por ejemplo «grt_Contratos_Proveedores») y creamos una relación entre dicho módulo y uno que emplee el tipo de campo «Relacionado con» o «Related to», como por ejemplo el módulo «Tareas» o «Tasks», querremos probablemente poder buscar todas las tareas relacionadas con nuestro nuevo módulo «grt_Contratos_Proveedores» desde el formulario de búsqueda simple o avanzada de «Tareas».

19 de noviembre de 2012
Xorg icon

Cómo evitar que el fichero .xsession-errors alcance un tamaño enorme

El fichero .xsession-errors es un fichero de log que utiliza el sistema de ventanas X para registrar todos los errores que se producen en el entorno gráfico de Linux. Dado que todos los entornos de escritorio, ya sea Gnome, KDE, Cinnamon, XFCE, LXDE, etc., y todos los gestores de ventanas más livianos que no llegan a constituir un entorno de escritorio como FVWM, IceWM o Window Maker utilizan el sistema de ventanas X, al final cualquier aplicación gráfica que ejecutemos en nuestro ordenador puede provocar que se escriban mensajes de error en el fichero .xsession-errors, por lo que éste puede crecer de forma descontrolada hasta alcanzar fácilmente un tamaño muy grande de decenas de GB o incluso cientos si la capacidad de nuestro disco lo permite.

25 de junio de 2017
Ctrl+S

Desbloquear la línea de comandos de Linux tras pulsar Ctrl+s en Bash

Dado que la combinación de teclas Control+s es muy utilizada como atajo para la opción de Guardar ficheros en aplicaciones gráficas como editores de texto, editores de imágenes, navegadores web, etc. a veces nos traiciona el subconsciente cuando estamos trabajando desde la línea de comandos de Linux y utilizamos esa misma combinación de teclas cuando estamos por ejemplo editando un documento con Vim con la intención de guardarlo. A partir de ese momento observamos que ninguna tecla responde, la shell se ha bloqueado y ya no podemos hacer nada más en ella y nos entra un sudor frío porque no podemos acceder al documento que estábamos editando y no podemos salvar los cambios.

27 de abril de 2017

Comentarios

Seb 12 de octubre de 2012
The first solution worked for me. Thanks for the post!
Antonio Madonna 31 de mayo de 2013
The first solution is what I was looking for! Thank you!
Borja 29 de septiembre de 2014
Option 1 did'nt work for me. How can you create the user in MySQL? When I try to create the user, MySQL gives me an error: ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
john 30 de diciembre de 2014
Borja, Did you resolve this?
john 30 de diciembre de 2014
same here, option 1 didnt work, I can only access my plesk panel with –skip-grant-tables option enabled, I can not run commands like create new user while with –skip-grant-tables is enabled. If I remove it, I cant login !!

Enviar comentario