Ubuntu20.04 MySQL8.0.29解决ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘的问题

这个问题困扰了3个星期!主要还是要看版本和和执行命令。mysql一直在升级一直要跟着变。

直接在ubuntu系统里安装完mysql8.0.29,安装期间提示输入密码或输入密码没用。安装完后登陆

~$ mysql -u root -p

Enter password:

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

出现以上提示:

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

解决方案:

1、ubuntu 使用sudo默认不需要输入密码

~$ sudo mysql

2、选择数据库mysql

 mysql> use mysql;

3、更改密码,密码注意要大小写和特殊符号加数字,超过8位,如果不确定就先查询确认下密码强度;

show variables like 'validate_password%';

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Sql!123456'; 

4、刷新权限

mysql> flush privileges;

5、退出

mysql>exit;

6、重启服务器

~$ service mysql restart

7、登陆mysql

~$ mysql -u root -p

8、输入密码

Enter password:

完工!

你可能感兴趣的:(ubuntu,mysql,linux)