大模型迭代加速:技术、数据与生态驱动下的开发者应对策略
2026/7/25 6:19:27
本文整理了不同场景下 MySQL 密码修改的方法,涵盖「记得密码」「忘记密码」「修改其他用户密码」及「MySQL 8.0+ 特殊处理」,适配 Windows/Linux/macOS 系统。
适用于能正常登录 MySQL,仅需更换密码的场景,推荐优先使用ALTER USER命令。
| 命令类型 | 适用版本 | 执行语句 |
|---|---|---|
| ALTER USER(推荐) | MySQL 5.7.6+ | ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; |
| SET PASSWORD | MySQL 5.7.5 及以下 | SET PASSWORD FOR 'root'@'localhost' = PASSWORD('你的新密码'); |
| SET PASSWORD | MySQL 8.0+ | SET PASSWORD FOR 'root'@'localhost' = '你的新密码'; |
| UPDATE(不推荐) | 所有版本 | UPDATE mysql.user SET authentication_string = PASSWORD('你的新密码') WHERE User = 'root' AND Host = 'localhost'; FLUSH PRIVILEGES; |
mysqladmin -u root -p password "你的新密码" # 执行后会提示输入当前密码,验证通过后修改适用于无法登录 MySQL,需强制重置 root 密码的场景,分系统适配不同方法。
C:\mysql-init.txt,写入:ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';net stop mysql # 若失效,尝试:sc stop mysqlmysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file="C:\mysql-init.txt" --consolenet start mysqlnet stop mysqlreset.bat批处理文件,内容:@echo off mysqld --skip-grant-tables --shared-memory --consolereset.bat,保持窗口开启;mysql -u root-- 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;reset.bat窗口,重启 MySQL 服务:net start mysqlsudo systemctl stop mysql # 或:sudo service mysql stopsudo mysqld_safe --skip-grant-tables --skip-networking &mysql -u rootUSE 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;sudo systemctl restart mysql# 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';-- 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';MySQL 8.0 默认使用caching_sha2_password插件,老客户端可能兼容失败,需切换为旧版插件:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';mysql -u root -p # 输入新密码,能登录则生效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 |
'root'@'%'密码,而非仅'root'@'localhost'。