解决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(操作到此完毕)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容