news 2026/5/1 10:47:03

mysql修改密码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
mysql修改密码

本文整理了不同场景下 MySQL 密码修改的方法,涵盖「记得密码」「忘记密码」「修改其他用户密码」及「MySQL 8.0+ 特殊处理」,适配 Windows/Linux/macOS 系统。

一、记得当前密码(正常登录修改)

适用于能正常登录 MySQL,仅需更换密码的场景,推荐优先使用ALTER USER命令。

1. MySQL 命令行修改

命令类型适用版本执行语句
ALTER USER(推荐)MySQL 5.7.6+ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
SET PASSWORDMySQL 5.7.5 及以下SET PASSWORD FOR 'root'@'localhost' = PASSWORD('你的新密码');
SET PASSWORDMySQL 8.0+SET PASSWORD FOR 'root'@'localhost' = '你的新密码';
UPDATE(不推荐)所有版本UPDATE mysql.user SET authentication_string = PASSWORD('你的新密码') WHERE User = 'root' AND Host = 'localhost'; FLUSH PRIVILEGES;

2. mysqladmin 工具修改(命令行)

mysqladmin -u root -p password "你的新密码" # 执行后会提示输入当前密码,验证通过后修改

二、忘记密码(重置 root 密码)

适用于无法登录 MySQL,需强制重置 root 密码的场景,分系统适配不同方法。

1. Windows 系统

方法 A:--init-file 法(推荐,更安全)
  1. 创建初始化文件:新建C:\mysql-init.txt,写入:
    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
  2. 停止 MySQL 服务:
    net stop mysql # 若失效,尝试:sc stop mysql
  3. 安全模式启动并执行文件(替换 my.ini 实际路径):
    mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file="C:\mysql-init.txt" --console
  4. 重启正常服务:
    net start mysql
方法 B:--skip-grant-tables 法(应急)
  1. 停止 MySQL 服务:net stop mysql
  2. 新建reset.bat批处理文件,内容:
    @echo off mysqld --skip-grant-tables --shared-memory --console
  3. 以管理员身份运行reset.bat,保持窗口开启;
  4. 新开管理员命令行,无密码登录:mysql -u root
  5. 执行重置命令(按版本选择):
    -- MySQL 5.7.6+ ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; -- MySQL 5.7.5 及以下 UPDATE mysql.user SET authentication_string = PASSWORD('你的新密码') WHERE User = 'root' AND Host = 'localhost'; FLUSH PRIVILEGES;
  6. 关闭reset.bat窗口,重启 MySQL 服务:net start mysql

2. Linux/macOS 系统

方法 A:--skip-grant-tables 法(通用)
  1. 停止 MySQL 服务:
    sudo systemctl stop mysql # 或:sudo service mysql stop
  2. 安全模式启动:
    sudo mysqld_safe --skip-grant-tables --skip-networking &
  3. 无密码登录:mysql -u root
  4. 执行重置命令(按版本选择):
    USE mysql; -- MySQL 8.0+ ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; -- MySQL 5.7 UPDATE user SET authentication_string = PASSWORD('你的新密码') WHERE User = 'root'; FLUSH PRIVILEGES; EXIT;
  5. 重启服务:sudo systemctl restart mysql
方法 B:debian-sys-maint 法(Debian/Ubuntu 专属)
# 1. 查看系统自动生成的管理密码 sudo cat /etc/mysql/debian.cnf # 2. 使用该密码登录 MySQL mysql -u debian-sys-maint -p # 3. 修改 root 密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

三、修改其他用户密码

适用于修改非 root 用户的密码,格式统一,仅需替换用户名 / 主机名:

-- 通用格式 ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码'; -- 示例1:修改 admin 用户(允许所有主机访问) ALTER USER 'admin'@'%' IDENTIFIED BY 'new_password123'; -- 示例2:修改 test 用户(仅本地访问) ALTER USER 'test'@'localhost' IDENTIFIED BY 'testpass';

四、MySQL 8.0+ 特殊注意事项

1. 密码策略限制(无法设置简单密码)

-- 1. 查看当前密码策略 SHOW VARIABLES LIKE 'validate_password%'; -- 2. 临时降低策略强度(测试环境,重启失效) SET GLOBAL validate_password.policy = LOW; SET GLOBAL validate_password.length = 4; -- 3. 再修改密码(示例:设置简单密码 1234) ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';

2. 认证插件兼容问题(caching_sha2_password 错误)

MySQL 8.0 默认使用caching_sha2_password插件,老客户端可能兼容失败,需切换为旧版插件:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';

五、修改后验证

  1. 测试新密码登录:
    mysql -u root -p # 输入新密码,能登录则生效
  2. 查看用户密码信息:
    SELECT user, host, authentication_string FROM mysql.user;

六、快速选择指南

场景推荐方法
记得当前密码使用ALTER USER命令
忘记 root 密码(Windows)--init-file 法
忘记 root 密码(Linux/macOS)--skip-grant-tables 法
MySQL 8.0+ 设置简单密码先降低密码策略,再修改密码
老客户端连接 MySQL 8.0+修改认证插件为 mysql_native_password

重要提醒

  1. 密码修改后立即测试,避免登录失败;
  2. 生产环境务必使用强密码(数字 + 字母 + 特殊符号);
  3. 修改前建议备份数据库,防止操作失误;
  4. 远程连接需修改'root'@'%'密码,而非仅'root'@'localhost'
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 9:27:25

Python语言编程导论第五章 模块与函数

内容提要概述函数模块综合举例一、概述Python的程序由包、模块和函数组成。 函数是一段可重用的有名称的代码。通过输入的参数值,返回需要的结果,并可存储在文件中供以后使用。几乎任何Python代码都可放在函数中。Python为函数提供了强大支持。 模块是处…

作者头像 李华
网站建设 2026/5/1 6:50:22

Dify智能体平台与Anything-LLM融合应用的场景探索

Dify与Anything-LLM融合:构建企业级智能知识中枢的实践路径 在企业数字化转型进入深水区的今天,一个普遍而棘手的问题浮出水面:组织积累了海量的制度文档、产品手册、项目报告和合规文件,但这些“知识资产”大多沉睡在共享盘或OA系…

作者头像 李华
网站建设 2026/5/1 5:02:34

LangFlow在自动驾驶语义理解训练中的辅助作用

LangFlow在自动驾驶语义理解训练中的辅助作用 在智能驾驶系统日益复杂的今天,车辆不仅要“看得见”道路,更要“听得懂”世界。面对城市交通中千变万化的语音指令、突发行为描述和多模态交互场景,如何让AI真正理解人类语言背后的意图与上下文&…

作者头像 李华
网站建设 2026/5/1 6:49:30

22、Linux 环境下迁移和运行 Windows 应用及瘦客户端计算全解析

Linux 环境下迁移和运行 Windows 应用及瘦客户端计算全解析 1. Win4Lin 产品分析 Win4Lin 产品对于那些拥有现有 Windows 会话和软件,同时希望回收利用现有 PC 并逐步向 Linux 桌面过渡的企业来说是一大福音。它非常适合在桌面上运行 Windows 应用,但在周边设备支持方面,如…

作者头像 李华
网站建设 2026/5/1 6:47:12

26、深入了解 GNU 宽通用公共许可证(LGPL)

深入了解 GNU 宽通用公共许可证(LGPL) 1. 软件许可证概述 在软件领域,许可证至关重要,它规定了软件的使用、分发和修改方式。大多数软件许可证会限制用户共享和修改软件的自由,而 GNU 通用公共许可证(GPL)则致力于保障用户自由共享和修改自由软件的权利,确保软件对所…

作者头像 李华
网站建设 2026/5/1 6:50:31

29、Solaris内核调度与睡眠唤醒机制解析

Solaris内核调度与睡眠唤醒机制解析 1. Solaris内核调度器 内核调度器负责为处理器选择合适的线程来执行。其工作流程如下: - 线程查找 :若线程不在内核抢占队列中,会检查每个处理器的 disp_maxrunpri 队列。若该队列值为 -1,则表示队列为空,此时会调用 disp_getwo…

作者头像 李华