ERROR 1698 (28000): acceso denegado para el usuario 'root' @ 'localhost' en Ubuntu 18.04

22

Seguí este tutorial para instalar MySQL pero después de instalar MySQL con éxito, no pude acceder a la base de datos.

ERROR 1698 (28000): acceso denegado para el usuario 'root' @ 'localhost'

Ashrafuzzaman Sujan
fuente
1
Me enfrenté al mismo problema, después de investigar un poco, entendí que tenía que establecer su contraseña de root siguiendo las instrucciones en StackOverFlow .
Mohammad.H Fathi

Respuestas:

46

Encontré una solución en este enlace , siguiendo esta solución he resuelto mi problema.

Los pasos cortos son:

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test'; 

Nota: aquí testhay una nueva contraseña para el usuario root. Además, recuerde ejecutar el comando sudo service mysql restartdespués de alterar al usuario.

Ashrafuzzaman Sujan
fuente
Gracias. Es extraño que mysql-server ya no esté dispuesto a ingresar una contraseña.
gamofe
1
ERROR 1064 (42000): tiene un error en su sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MariaDB para obtener la sintaxis correcta para usar cerca de la raíz 'USUARIO' @ 'localhost' IDENTIFICADO CON mysql_native_password POR 'b230mehonot' 'en la línea 1
alhelal
mismo error aquí ... :(
user1111929
@alhelal, la solución es para MySQL, no para MariaDB. Entonces puedes probar otra solución.
Ashrafuzzaman Sujan
No escriba mysql -u root, solo escriba "sudo mysql". En los sistemas Ubuntu que ejecutan MySQL 5.7 (y versiones posteriores), el usuario root está autenticado por el complemento auth_socket de forma predeterminada.
ravisoni
13

Encontré otra forma que es mucho mejor ya que no necesitamos dar ninguna contraseña para el sistema local.
Es como sigue.

Abrir terminal y escribir

sudo mysql -u root -p

Le indicará en mysql, aquí puede activar cualquier comando de mysql.

Use la tabla mysql para cambiar el tipo de tabla, por lo que podemos usar una contraseña vacía. Abajo está el comando para ello

USE mysql;

Ahora cambiamos el tipo de tabla siguiendo el comando

UPDATE user SET plugin='mysql_native_password' WHERE User='root';

ahora tenemos que vaciar los privilegios, porque hemos usado ACTUALIZACIÓN. Si usa INSERTAR, ACTUALIZAR o ELIMINAR directamente en las tablas de otorgamiento , necesita usar PRIVILEGIOS FLUSH para volver a cargar las tablas de otorgamiento.

FLUSH PRIVILEGES;

ahora salga de mysql siguiendo el comando

exit;

ahora reinicie el servidor mysql siguiendo el comando

service mysql restart

Espero que esto pueda ayudar

Gracias.

Krunal Pathak
fuente
2
Esta es la respuesta correcta
Ningappa,
Gracias feliz de ayudar :)
Krunal Pathak