菜鸟科技网

如何查询mysql数据库密码忘了怎么办

忘MySQL数据库密码,可通过修改配置文件跳过权限检查重启服务后重置密码,或用root用户及

遇到MySQL数据库密码遗忘的情况时,可以通过以下步骤进行重置,该方法适用于大多数版本(包括MySQL 8.0及以上),且无需依赖第三方工具,以下是详细的操作流程和注意事项:

如何查询mysql数据库密码忘了怎么办-图1
(图片来源网络,侵删)

关闭MySQL服务

  1. 方法一:通过命令提示符以管理员身份执行 net stop mysql;若提示权限不足,需确保使用管理员账户运行CMD。
  2. 方法二:在Windows的“服务”应用中找到MySQL相关进程并手动停止,此步骤目的是完全终止当前运行的数据库实例,为后续无授权访问做准备。

以跳过权限验证的模式重启MySQL

打开新的命令行窗口,输入 mysqld --skip-grant-tables 并回车,此时MySQL会启动但不加载用户权限表,允许任何用户直接登录,注意保持该窗口持续开启状态,直到完成后续操作。

免密登录并修改密码

  1. 进入客户端:另开一个CMD窗口,执行 mysql -u root(无需输入密码),成功连接后即处于特权模式。
  2. 选择系统库:运行 USE mysql;切换至存放用户信息的数据库。
  3. 更新密码字段:根据不同版本执行对应SQL语句:
    • 新版本(如MySQL 8.0+):使用 UPDATE user SET authentication_string = PASSWORD('新密码') WHERE user='root' AND host='localhost';,这里必须用 authentication_string 而非旧版的 password 字段,且需通过 PASSWORD() 函数加密存储。
    • 兼容性写法:若报错可尝试 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';,之后需配合 FLUSH PRIVILEGES;使更改生效。
  4. 刷新权限缓存:无论采用哪种方式修改密码后,都必须执行 FLUSH PRIVILEGES; 确保配置立即应用。

恢复正常启动并验证新密码

  1. 关闭异常进程:返回最初运行 mysqld --skip-grant-tables 的窗口,结束该进程。
  2. 重启标准服务:再次通过 net start mysql 或服务管理器启动MySQL。
  3. 测试连接:使用新设置的密码尝试登录,mysql -uroot -p 然后输入刚才设定的密码。

常见问题排查手册

现象描述 可能原因 解决方案
Error 1130: Access denied 未正确刷新权限 重新登录后执行 GRANT ALL PRIVILEGES ON . TO root@'localhost' IDENTIFIED BY '新密码'; FLUSH PRIVILEGES;
Can’t connect to local MySQL server 端口被占用/服务未启动 检查任务管理器中是否残留旧进程,确认3306端口可用性
语法错误 使用了过时的字段名 确保使用 authentication_string 代替 password,并添加反引号避免保留字冲突

相关问答FAQs

Q1: 如果跳过权限验证时出现“找不到文件”的错误怎么办?

A: 此问题通常因路径未加入系统环境变量导致,解决方案是找到MySQL安装目录下的bin文件夹(例如默认路径为C:\Program Files\MySQL\MySQL Server X.Y\bin),将其完整路径添加到系统的PATH环境变量中,修改后重新打开命令提示符窗口即可识别mysqld命令。

Q2: 修改密码后仍然无法用新密码登录是什么原因?

A: 主要有两个可能性:①未执行FLUSH PRIVILEGES导致权限未更新;②在my.ini配置文件里保留了skip-grant-tables参数,针对第二种情况,需要编辑配置文件删除该条目,并重启MySQL服务以恢复正常的身份验证机制,建议在修改密码后检查my.ini文件中是否存在此临时

如何查询mysql数据库密码忘了怎么办-图2
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇