mysql 8.0 密码相关

博客介绍了MySQL版本在密码加密和修改方式上的变化。MySQL8.0前用“mysql_native_passowrd”加密,8.0后改为“caching_sha2_password”,修改密码方式也改变,还会因密码安全度检测报错,需设置另外两个变量来重置密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL8.0版本之前,MySQL使用的加密方式是“mysql_native_passowrd",在MySQL8.0之后,加密的方式改为“caching_sha2_password”.
所以修改密码的方式也变了

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

然而有时候还会报错
ERROR 1819 (HY000): Your password does not satisfy the current policy re quirements
这是因为密码安全度检测, '123456’不符合要求
所以还得设置一下另外两个变量
注意这里的password和policy中间是".“号, 不是老版的”_"

set global validate_password.policy=0;
set global validate_password.length=4;

然后退出mysql, 执行以下代码, 就可以重置密码为123456了

mysql_secure_installation
### 如何重置 MySQL 8.0 的 Root 用户密码 对于不同操作系统上的 MySQL 8.0,重置 `root` 用户密码的方法有所不同。 #### 在 Windows 上重置 MySQL 8.0 密码 为了在 Windows 平台上重置 MySQL 8.0 的 `root` 用户密码,可以按照如下方式操作: 执行 SQL 命令来更改 `root` 用户的密码: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'password123'; ``` 这条命令会将本地主机连接下的 `root` 用户的新密码设为 `'password123'`[^5]。 #### 在 macOS 上恢复 MySQL 8.0 的 Root 密码 针对 macOS 用户,可以通过启动带有跳过授权表选项的服务并进入 MySQL 来完成密码重置工作。具体过程可参照 MySQL 官方文档中的指导[^2]。 #### 在 Linux (CentOS/Ubuntu) 上重置 MySQL 8.0 的 Root 密码 对于 CentOS 或 Ubuntu 这样的 Linux 发行版,在忘记 `root` 用户密码的情况下,可通过以下方法进行重置: 1. 使用无验证模式启动 MySQL; 2. 登录到 MySQL 数据库而无需提供任何密码; 3. 执行 SQL 查询更新 `root` 用户的身份认证信息: ```sql ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES; ``` 此处使用了 `mysql_native_password` 插件作为身份验证机制的一部分,并设置了新的密码 `'123456'`[^4]。 4. 编辑 `/etc/mysql/mysql.conf.d/mysqld.cnf` 文件移除临时添加的内容以便恢复正常运行状态; 5. 重启 MySQL 服务使更改生效:`sudo service mysql restart`[^3]; 以上就是在各主要平台上处理 MySQL 8.0 中丢失 `root` 用户密码的情况时所采取的不同策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值