mysql(5.7.17)修改密码

本文提供了两种重置MySQL root用户密码的方法:使用SQL命令直接修改和利用mysqladmin工具进行更新。文章强调了password()函数及authentication_string字段的正确用法,并提醒读者注意已被废弃的password字段。

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

--方法1
alter user 'root'@'localhost' identified by 'your password';

--方法2,需要已知password
mysqladmin -uroot -pold_password password net_password


--错误,user表中已经没有password字段
use mysql;
update user set password='pwd' where user='root';

--authentication_string不是密码字段
update mysql.user set authentication_string=password('root') where user='root';

--上句执行后警告,password()以后将移除
show warnings;
--'PASSWORD' is deprecated and will be removed in a future release.
### 如何在 MySQL 5.7.17 中重置或修改 root 用户密码 #### 方法一:通过 `skip-grant-tables` 方式重置密码 如果忘记了 MySQLroot 密码,可以通过以下方法重新设置: 1. **停止 MySQL 服务** 使用命令停止当前运行的 MySQL 服务: ```bash systemctl stop mysqld ``` 2. **编辑配置文件 `/etc/my.cnf` 或 `my.ini`** 找到 MySQL 配置文件,在 `[mysqld]` 下添加如下内容以跳过权限验证: ```ini [mysqld] skip-grant-tables ``` 3. **启动 MySQL 服务** 启动 MySQL 并使其忽略授权表: ```bash systemctl start mysqld ``` 4. **登录 MySQL 不需要密码** 此时可以无需密码直接登录 MySQL: ```bash mysql -u root ``` 5. **更新 root 用户密码** 进入 MySQL 控制台后,执行以下 SQL 更新 root 用户的密码。注意区分 MySQL 版本中的语法差异: - 对于 MySQL 5.7.6 及更高版本: ```sql UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root'; ``` 如果未启用旧版密码插件,则可能不需要使用 `PASSWORD()` 函数[^1]。 - 对于 MySQL 5.7.5 及更早版本: ```sql UPDATE mysql.user SET password=PASSWORD('new_password') WHERE User='root'; ``` 6. **刷新权限并退出** 刷新权限使更改立即生效: ```sql FLUSH PRIVILEGES; EXIT; ``` 7. **移除 `skip-grant-tables` 设置** 编辑配置文件 `/etc/my.cnf` 或 `my.ini`,删除或注释掉 `skip-grant-tables` 行。 8. **重启 MySQL 服务** 最后重启 MySQL 服务以应用新的密码策略: ```bash systemctl restart mysqld ``` --- #### 方法二:在线重置密码(不停机) 如果希望在不停止 MySQL 服务的情况下重置密码,可按照以下步骤操作: 1. **确认当前密码策略** 修改前需确保没有额外的安全策略阻止密码变更。如果有复杂度要求或其他限制,请先调整这些策略再继续[^2]。 2. **登录 MySQL** 若已知部分密码或者可通过其他方式绕过认证,尝试直接连接至 MySQL 数据库: ```bash mysql -u root -p ``` 3. **更新 root 密码** 在控制台中输入以下语句来更新 root 密码: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; ``` 4. **刷新权限** 确保新密码被正确加载: ```sql FLUSH PRIVILEGES; ``` --- #### 注意事项 - 在某些情况下,可能会遇到错误提示如 `ERROR 1290 (HY000)`,这是因为启用了 `--skip-grant-tables` 参数导致无法执行涉及权限管理的操作。此时应仅依赖直接修改用户表的方式完成密码重设[^2]。 - 新增用户或授予特定主机访问权时需要注意安全风险,建议始终绑定具体 IP 地址而非通配符 `%`。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值