MySQL 5.7 安装后 root 临时密码需从错误日志提取,如 /var/log/mysqld.log(CentOS)或 C:\ProgramData\MySQL\MySQL Server 5.7\Data\*.err(Windows),格式为“A temporary password is generated for root@localhost: XXX”,登录后必须立即用 ALTER USER 重设符合复杂度要求的新密码,否则任何操作均被拒绝。

MySQL 5.7 安装后 root 密码不是“空”也不是你输入的,而是自动生成并写入日志的一次性临时密码——必须从日志里提取,不能跳过这步直接设新密。
查 /var/log/mysqld.log 或 /var/log/mysql/error.log 提取临时密码
安装完成首次启动后,MySQL 会生成一个仅一次有效的临时密码,写进错误日志,不显示在终端也不存配置文件里。路径取决于系统发行版:
- CentOS/RHEL:用
sudo grep 'temporary password' /var/log/mysqld.log - Ubuntu/Debian:用
sudo grep 'temporary password' /var/log/mysql/error.log - 如果日志被轮转过,加
-n 100查最后 100 行,再结合时间戳确认是最近一次初始化的日志行
输出类似:2026-09-28T03:15:22.456789Z 1 [Note] A temporary password is generated for root@localhost: XyZ9#mQ2!vL,其中 XyZ9#mQ2!vL 就是你要用的临时密码。
用临时密码登录后必须立刻执行 ALTER USER,否则连 SELECT 1 都失败
MySQL 5.7+ 强制要求首次登录后立即改密,且新密码需满足复杂度策略(至少 8 位,含大小写字母、数字、特殊字符)。常见错误包括:
- 直接运行
mysql -u root -p输入临时密码后,执行SELECT 1;报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. - 执行
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements.
解决办法(按顺序执行):
- 先登录:
mysql -u root -p→ 粘贴临时密码 - 执行强制改密:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass123!'; - 如仍报复杂度错误,可临时放宽策略(仅限测试环境):
SET GLOBAL validate_password.policy = LOW;,再重试ALTER USER
Windows 下找不到 mysqld.log?默认日志路径在 C:\ProgramData\MySQL\MySQL Server 5.7\Data\
Windows 版 MySQL 5.7 不把临时密码写进系统日志,而是在数据目录下的 hostname.err 文件中(hostname 是你的机器名)。典型路径是:
C:\ProgramData\MySQL\MySQL Server 5.7\Data\DESKTOP-ABC123.err- 用记事本或 PowerShell 打开该文件,搜索
temporary password
注意:C:\ProgramData 是隐藏文件夹,需在文件资源管理器地址栏直接粘贴路径访问;若用 ZIP 方式手动安装,日志路径由 my.ini 中的 log-error 配置项指定,务必检查该值。
临时密码只在首次启动时生成一次,服务重启不会刷新;一旦用它成功登录并执行了 ALTER USER,原临时密码立即失效。别指望“再看一遍日志”就能重复使用——这是最容易被忽略的逻辑点。


















