mysql登录root密码中遇到的问题解决

Ubuntu中mysql设置root密码时遇到的问题解决

前言:使用的环境是Ubuntu

1.首先,我们有两种登陆方式

1.1 使用sudo mysql登陆
该种方法不需要密码,但安全性较差
sudo mysql
1.2 使用mysql -u root -p登陆
需要密码,但安全性高
mysql -u root -p

2.Access denied for user ‘root’@'localhost’错误

Questipn
明明设置了root密码,登录时却显示错误
ERROR 1698 (28000): Access denied for user ‘root’@'localhost’
在这里插入图片描述
解决办法:
2.1 我们先使用sudo mysql登陆进mysql中(密码就是你登录ubuntu的密码)
在这里插入图片描述

2.2 如果使用sudo mysql登录不进去,使用下面方法
1.输入sudo cat /etc/mysql/debian.cnf
在这里插入图片描述
2.我们能够看到user=XXXX,password=XXXX
使用下列命令登录

mysql -u debian-sys-maint -p

用户名:user=debian-sys-maint

在这里插入图片描述
注意:mysql -u 用户名 -p
密码就是我们刚刚查看到的密码,也可以登陆成功

2.3 查询用户

use mysql;
select user,plugin from user;

在这里插入图片描述

2.4 修改root的plugin

update user set plugin='mysql_native_password' where user='root'; # 修改其密码格式
select user,plugin from user; # 查询其用户

在这里插入图片描述
我们可以发现,已经修改好了

2.5 执行完这一步,不要忘记刷新权限

flush privileges;

在这里插入图片描述

2.6 增加root密码

alter user 'root'@'localhost' identified by '密码';

在这里插入图片描述
这时候,出现了第二个错误

3. 错误二:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements”

该错误的意思是你设置的密码过于简单,强度不够
3.1 一种方法就是你把自己的密码设置的强度高点

3.2 另一种方法降低mysql的密码强度

1.我们先查看密码强度

show variables like 'validate_password%';

在这里插入图片描述
我们可以看到:密码强度是MEDIUM
长度length是6

2 我们使用命令把密码强度改成low等级

set global validate_password.policy=low;

在这里插入图片描述
3. 继续设置root密码

alter user 'root'@'localhost' identified by '密码';

在这里插入图片描述
发现设置成功了

4.我们退出重新用root登录一下,看看成功了吗
在这里插入图片描述

好的,成功了

猜你喜欢

转载自blog.csdn.net/qq_63087425/article/details/129820678