如何修改MySQL密码以及忘记MySQL密码该怎么处理

来源:AI社区作者:南京GEO公司头衔:草根站长
导读:本期聚焦于小伙伴创作的《如何修改MySQL密码以及忘记MySQL密码该怎么处理》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何修改MySQL密码以及忘记MySQL密码该怎么处理》有用,将其分享出去将是对创作者最好的鼓励。

MySQL作为常用的关系型数据库,密码管理是运维和使用过程中的基础操作。无论是主动修改密码还是忘记密码后重置,都需要按照正确的流程操作,避免影响数据库的正常访问。

如何修改MySQL密码以及忘记MySQL密码该怎么处理

常规修改MySQL密码的方法

方法一:使用ALTER USER语句修改(MySQL 5.7及以上版本推荐)

如果当前可以正常登录MySQL,且拥有足够的权限,推荐使用ALTER USER语句修改密码,这种方式语法规范,兼容性更好。

首先登录MySQL:

-- 登录MySQL,输入当前密码
mysql -u root -p

登录成功后执行修改密码的命令:

-- 修改root用户的密码,新密码为NewPass123
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123';
-- 刷新权限使修改生效
FLUSH PRIVILEGES;

方法二:使用SET PASSWORD语句修改

也可以通过SET PASSWORD语句修改密码,这种方式同样适用于已登录且有对应权限的场景。

-- 登录后执行,修改当前登录用户的密码
SET PASSWORD = PASSWORD('NewPass123');
-- 如果是修改其他用户的密码,需要指定用户名
SET PASSWORD FOR 'test_user'@'localhost' = PASSWORD('TestPass456');
FLUSH PRIVILEGES;

方法三:直接修改user表(兼容低版本MySQL)

对于MySQL 5.6及以下的低版本,也可以通过直接修改mysql库的user表来修改密码,不过这种方式不推荐在新版本中使用。

-- 登录后切换到mysql库
USE mysql;
-- 更新root用户的密码,低版本密码字段为Password
UPDATE user SET Password = PASSWORD('NewPass123') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

忘记MySQL密码的重置方法

如果忘记MySQL的登录密码,无法通过上述常规方式修改,需要通过跳过权限验证的方式重置密码,不同操作系统的操作流程略有差异。

Linux系统下重置忘记的MySQL密码

首先停止正在运行的MySQL服务:

-- 不同Linux发行版停止服务的命令可能不同
systemctl stop mysqld
-- 或者使用service命令
service mysqld stop

然后以跳过权限验证的方式启动MySQL:

-- 启动MySQL并跳过权限表加载
mysqld_safe --skip-grant-tables &

此时不需要密码就可以直接登录MySQL:

-- 无密码登录
mysql -u root
-- 切换到mysql库
USE mysql;
-- 修改root用户密码,MySQL 5.7及以上版本密码字段为authentication_string
UPDATE user SET authentication_string = PASSWORD('NewPass123') WHERE User = 'root' AND Host = 'localhost';
-- 如果是低版本MySQL,使用下面的语句
-- UPDATE user SET Password = PASSWORD('NewPass123') WHERE User = 'root' AND Host = 'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出MySQL
EXIT;

之后停止跳过权限的MySQL进程,重新正常启动服务:

-- 停止mysqld进程
killall mysqld
-- 正常启动MySQL服务
systemctl start mysqld

Windows系统下重置忘记的MySQL密码

首先停止MySQL服务,可以通过服务管理器或者命令行操作:

-- 停止MySQL服务,服务名根据实际安装情况调整,通常为mysql或者MySQL57
net stop mysql

打开命令提示符,切换到MySQL的安装目录的bin文件夹下,执行跳过权限验证的启动命令:

-- 跳过权限验证启动MySQL
mysqld --skip-grant-tables

保持当前窗口运行,再打开一个新的命令提示符窗口,直接登录MySQL:

-- 无密码登录
mysql -u root
-- 切换到mysql库
USE mysql;
-- 修改密码,根据版本选择对应的语句
UPDATE user SET authentication_string = PASSWORD('NewPass123') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
EXIT;

回到第一个命令提示符窗口,按Ctrl+C停止MySQL进程,然后正常启动MySQL服务:

net start mysql

注意事项

  • 修改密码后要及时刷新权限,否则修改可能不会立即生效。
  • 密码设置要符合复杂度要求,避免过于简单导致安全风险。
  • 重置忘记密码时,操作完成后一定要正常重启MySQL服务,否则权限验证仍然处于跳过状态,会有严重的安全隐患。
  • 如果是生产环境的数据库,操作前建议先备份相关数据,避免操作失误导致数据丢失。

MySQL修改密码忘记密码root用户修改时间:2026-06-20 01:21:35

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。