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?

usuario253867
fuente
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.

Parto
fuente
entré
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.

dogtato
fuente
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

Conor
fuente
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.

Andrew Zolotarev
fuente
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
Kuuak
fuente
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.

Ulrich Metzger
fuente
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