Error ‘Access denied for user ‘debian-sys-maint’@'localhost’ al actualizar el MySQL mediante apt-get

Logotipo MySQLEn nuestras oficinas disponemos de dos servidores con Ubuntu Gutsy Server Edition. Los tenemos como backup del sistema de backup y para gestionar nuestro sistema de tareas y para hospedar las webs en beta que vamos desarrollando.

Periódicamente y en domingo, los vamos actualizando mediante el imprescindible apt-get y las operaciones se realizan sin problemas y de manera sencilla. Pero en la última actualización no ha sido así.

Cuando ejecutabamos la secuencia y de confirmábamos los paquetes a enviar el sistema nos mostraba un error nuevo para nosotros.

sudo apt-get update
sudo apt-get upgrade

Secuencia de errores:

Preparing to replace mysql-server-5.0 5.0.45-1ubuntu2 (using …/mysql-server-5.0_5.0.45-1ubuntu3_i386.deb) …
* Stopping MySQL database server mysqld [fail]
invoke-rc.d: initscript mysql, action “stop” failed.
dpkg: warning - old pre-removal script returned error exit status 1
dpkg - trying script from the new package instead …
* Stopping MySQL database server mysqld [fail]
invoke-rc.d: initscript mysql, action “stop” failed.
dpkg: error processing /var/cache/apt/archives/mysql-server-5.0_5.0.45-1ubuntu3_i386.deb (–unpack):
subprocess new pre-removal script returned error exit status 1
* Stopping MySQL database server mysqld [fail]
invoke-rc.d: initscript mysql, action “stop” failed.
* Starting MySQL database server mysqld [ OK ]
/usr/bin/mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘debian-sys-maint’@'localhost’ (using password: YES)’

Tras Googlear un rato, dimos con la solución en este foro.

En resumen, lo que se ha de verificar es que en la tabla user, de la base de datos mysql del servidor, exista el usuario debian-sys-maint, y que su password sea el que aparece en el fichero /etc/mysql/debian.cnf.

Lo podemos verificar ejecutando la instruccion siguiente desde la consola mysql.

mysql> use mysql;
mysql> SELECT Host,User,Password FROM user WHERE User = 'debian-sys-maint';

Ojo!, el password del fichero debian.cnf está en texto plano sin encriptar y en la tabla está encriptado en MD5.

Si no existe el usuario, como en nuestro caso, que lo eliminamos para reducir el número de usuarios en el sistema. Solamente se ha de ejecutar el siguiente código.

CREATE USER 'debian-sys-maint'@ '%' IDENTIFIED BY 'CLAVE_QUE_SALE_EN_DEBIAN_CNF';

GRANT ALL PRIVILEGES ON * . * TO 'debian-sys-maint'@ '%' IDENTIFIED BY 'CLAVE_QUE_SALE_EN_DEBIAN_CNF' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

De esta manera ya podremos ejecutar de nuevo el apt-get upgrade y la instalación es efectuará sin problemas.

0 Respuestas a “Error ‘Access denied for user ‘debian-sys-maint’@'localhost’ al actualizar el MySQL mediante apt-get”


  1. Ningún Comentario

Añade un Comentario