解决MySQL8.0 root密码为空或ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘的问题

解决MySQL8.0 root密码为空和 ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘的问题

问题:MySQL8.0安装完成后首次登录root密码为空和用户显示权限错误(如下图),

ubuntu@ubuntu:~$ mysql -u root -p

Enter password:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

原因:是因为auth_socket的验证类型引起的。

解决方法:

1、通过sudo进入mysql(Ubuntu默认sudo不需要密码就可以进入)

ubuntu@ubuntu:~$ sudo  mysql

2、进入mysql库(如果密码为空不需要1步,直接进入2步)

mysql>use mysql;

3、查找user表(在mysql中输入如下命令【select user, authentication_string,plugin from mysql.user】显示表内容)

表1修改密码之前

4、改密码(新密码暂定'mysql'):

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysql'(此处改为你想要的密码,本例为mysql);

Query OK, 0 rows affected (0.00 sec)

5、再查看user表,已经将密码改成功了!

表2修改密码之后

6、刷新:mysql> flush privileges;7、退出:exit;8、重启mysql:# service mysql restart(操作到此完毕)

你可能感兴趣的:(解决MySQL8.0 root密码为空或ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘的问题)