Acceso MySQL denegado para el usuario 'root' @ 'localhost'


24

En mi servidor, cada vez que intento acceder a MySQL aparece el error:

Acceso denegado para el usuario 'root' @ 'localhost' (usando la contraseña: NO)

cuando lo intento mysqladmin -u root -p passwordconsigo

Acceso denegado para el usuario 'root' @ 'localhost' (usando la contraseña: YES)

¿Cómo puedo acceder a MySQL en mi servidor Ubuntu 12.04?


1
Intente evitar escribir su contraseña como parámetro en la línea de comando, otros usuarios pueden encontrarla a través de listas de procesos. Mucho mejor escribirlo directamente en el programa o usar una clave
— Amias

La sintaxis -p passwordes incorrecta, tiene que ser -ppasswordpero no se recomienda. Más información: stackoverflow.com/questions/5131931/…
— Melebius

Consulte esta página para ver las posibles causas de este error y las soluciones para solucionarlo. rathishkumar.in/2017/04/… . Te puede ayudar.
— rathishDBA

Respuestas:


12

Si está ejecutando n localhost, simplemente escriba el comando a continuación en la terminal:

mysql -u root -p

Si está utilizando un servidor externo, ingrese la IP del host (xxx.xxx.xxx.xxx) también:

mysql -hxxx.xxx.xxx.xxx -uroot -p

Se le pedirá su contraseña, ingrésela y podrá acceder a su solicitud de MySQL.

También puede ver esta respuesta sobre cómo restablecer su contraseña de MySQL.



En la respuesta a la que me vinculé, debe reemplazar 5.xal final con la versión del servidor MySQL que está utilizando. Estoy usando 5.5, así que mi comando serásudo dpkg-reconfigure mysql-server-5.5
— Parto

99
entonces, el problema es que OP ve Access denied for user 'root'@'localhost'. Sugieres llamar mysql -u root -p. El resultado de este comando es: Access denied for user 'root'@'localhost'.
— phil294

55
sudo mysql -u root -pfunciona para mí, pero mysql -u root -pno lo hace
— Ivan Black

7

Recibo los mismos síntomas cuando actualizo, pero para mí la solución (después de eliminar mysql y reiniciar con --skip-grant-tables para entrar) es ejecutar

update mysql.user set plugin = '';

Al proceso de actualización le gusta establecer esta columna en "unix_socket". No sé qué se supone que debe lograr, pero para mí lo rompe todo.


Esto resuelve mi problema en Ubuntu 16 LTS, después de probar todo ... permisos, usuario de grupo. Gracias
— onalbi

Sí, había ejecutado un script de refuerzo y cambió el complemento a mysql_socketmodo que lo que estaba configurado para usar PASSWORD('xxxxxx')no funcionaba.
— TheVillageIdiot

4

Establecer una contraseña para mysql

sudo dpkg-reconfigure mysql-server-5.x

Ahora abra la terminal y escriba

mysql -uroot -p

dar contraseña y presionar enter


4

Resolví mi problema con esto:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt install mysql-server

Se extremadamente responsable. Con esta solución, está eliminando el servidor MySql y todos sus datos.


No funciona para mi
— Ivan Black

!! Se extremadamente responsable. Con esta solución, está eliminando el servidor MySql y todos sus datos.
— Matiss Jurgelis

4

Al igual que Ulrich Metzger, después de actualizar mi máquina a Ubuntu 16.04 y Mysql-server-5.7, no pude iniciar sesión con root porque la plugincolumna cambió.

Mi problema no se resolvió con sudo dpkg-reconfigure mysql-server-5.7+ eliminar + purgar + limpiar.

Tuve que detener el servicio mysql:

# sudo service mysql stop

Luego reinicie el demonio mysql con la --no-grant-tablesopción:

# sudo mysqld_safe --no-grant-tables &

Luego, en otra terminal, ingrese la consola mysql (que ahora no necesita autenticación) con el comando mysql, y actualice la contraseña y las columnas del complemento a través de una ACTUALIZACIÓN SQL:

UPDATE mysql.user 
  SET authentication_string=PASSWORD(''), 
      plugin='mysql_native_password'
WHERE User='root' AND Host='localhost';

Finalmente, elimine el mysqld_safecomando, reinicie el servicio mysql y conéctese a mysql normalmente:

# sudo service mysql start
# mysql

2

Después de actualizar de ubuntu 14.4LTS a 16.4LTS, el usuario root de mysql no pudo iniciar sesión debido a una entrada incorrecta en la columna del complemento de la tabla de usuarios de mysql. La actualización establece el valor del complemento para el usuario root @ localhost en auth_socket, pero la entrada correcta debe ser mysql_native_password , si utilizó el cifrado de contraseña nativa mysql antes.


Este es el que me ha funcionado, y parece ser la raíz del problema. Desinstalar y reinstalar no hará nada para solucionar el "problema".
— SteveFromAccounting
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.