2012-07-25 14 views
32

He tenido problemas con mysql. Traté de ejecutar este:acceso denegado para el usuario debian-sys-maint

echo "show databases" | mysql -B -N 

Pero tengo:

ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES) 

Pero cuando Exec:

/etc/init.d/mysql restart 

recibí un 'OK'.

lo hice

GRANT ALL PRIVILEGES on *.* TO [email protected] IDENTIFIED BY PASSWORD 'your password' WITH GRANT OPTION; FLUSH PRIVILEGES; 

donde contraseña es de /etc/mysql/debian.cnf. Pero no ayudó. (por supuesto, me limité a priv y reinicié mysql).

Respuesta

15

El problema es que su estado de cuenta GRANT utiliza IDENTIFIED BY PASSWORD cláusula, y en este caso MySQL esperar para obtener un algoritmo hash contraseña, no un texto plano.

En su lugar, use IDENTIFIED BY 'your password', si desea proporcionar una contraseña de texto sin formato.

87

Eso es porque Debian tiene una cuenta MySQL debian-sys-maint que se usa para encender/apagar y verificar el estado. La contraseña para ese usuario debe ser la misma que se almacena en /etc/mysql/debian.cnf. El archivo tiene el siguiente aspecto:

# Automatically generated for Debian scripts. DO NOT TOUCH! 
[client] 
host  = localhost 
user  = debian-sys-maint 
password = <password> 
socket = /var/run/mysqld/mysqld.sock 
[mysql_upgrade] 
host  = localhost 
user  = debian-sys-maint 
password = <password> 
socket = /var/run/mysqld/mysqld.sock 
basedir = /usr 

Si la contraseña no coincide (por ejemplo porque ha cambiado de forma manual) el guión de inicio no funcionará más. Debe establecer la contraseña de acuerdo con el archivo. Así

mysql -u root -p 
# Then type MySQL root password 
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '<password>'; 
+0

Tengo campos [cliente] y [mysql_upgrade] en /etc/mysql/debian.cnf. Las contraseñas son las mismas en el archivo y en la base de datos para el usuario. –

+1

Sí, todo lo que necesita es actualizar la contraseña, ya que este pase es único para cada instalación. Por ejemplo: mueve el data_dir de un servidor a otro, por lo que el pase no coincide con –

3

La manera más fácil de restaurar el usuario de debian-sys-maint es reconfigurar el paquete mysql-server-5.5. Que si conoce la contraseña del usuario raíz de MySQL, puede intentar restaurar el usuario y su contraseña en /etc/mysql/debian.cnf.

sudo dpkg-reconfigure mysql-server-5.5 

NOTA: si no se puede dejar de pid MySQL, basta con ejecutar sudo killall mysqld. Esto es necesario para reconfigurar el mysql-server-5.5.

+0

, esto no funciona. – specializt

+0

@specializt. Soluciona mi problema Tenga cuidado con la notación anterior. – shgnInc

+0

¿Por qué debería ser "cuidadoso" sobre alguna "notación"? Eso no tiene ningún sentido. – specializt

Cuestiones relacionadas