mysql8数据库版本修改mysql密码

几个前提:

  1. mysql 8 以上版本
  2. 需求是修改 mysql 数据库密码
  3. 知道旧密码

举个例子:我现在是 mysql 8.0.30 版本,安装数据库时设置的密码是 root,现在修改为 123456


解决办法


前提:需登上数据库:

在这里插入图片描述

方法步骤

1、使用 ALTER USER 语句修改密码:在 MySQL 8 及更高版本中,推荐使用 ALTER USER 语句来修改用户密码。语法如下:

ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
  • 'username':是你要修改密码的用户名。
  • 'host':是该用户所在的主机(通常是 localhost 或 %,表示所有主机)。
  • 'new_password':是新的密码。

例如,如果你要修改 root 用户的密码为 123456,可以执行以下命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

执行该命令后,MySQL 会立即更新密码。

提示:没报错的话,第2步不需要看,报错了接着看:

2、报错: 执行上面的命令后报错:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'
mysql>

在这里插入图片描述

2.1 问题分析: 通常是因为数据库用户权限问题,或者 MySQL 没有找到 root 用户的记录(大多数是这个情况)

2.2 问题排查:

2.2.1 首先确保 root 用户存在并且正确。假如存在且正确,则:

可能 root 用户并没有完全正确地创建,或者 root 用户的 host 字段没有匹配到你当前的连接主机(比如 % 或者其他)。先通过以下命令检查 root 用户的存在情况:

SELECT user, host FROM mysql.user WHERE user = 'root';

通过上面命令:确认 root 用户确实存在并且 host 是 localhost。

2.2.2 输入上述命令:

mysql> SELECT user, host FROM mysql.user WHERE user = 'root';
+------+------+
| user | host |
+------+------+
| root | %    |
+------+------+
1 row in set (0.00 sec)

mysql>

命令结果分析: 从提供的查询结果来看,root 用户的 host 是 %,这意味着 root 用户可以从任意主机连接到 MySQL。

再次分析报错原因: 由于 root 用户的 host 是 % 而不是 localhost,这就是为什么你使用 ALTER USER 'root'@'localhost' 时会遇到问题,因为 localhost 并没有找到对应的 root 用户。

2.3 解决问题:

如果你希望 root 用户可以从任意主机(%)登录,并修改该用户的密码,可以执行以下语句:

ALTER USER 'root'@'%' IDENTIFIED BY '123456';

这会将 root 用户在任意主机上的密码更新为 123456。


3、最后,确保刷新权限:
>mysql FLUSH PRIVILEGES;

4、使用新密码测试登录成功。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小学鸡!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值