临时密码仅写入数据目录下的错误日志(如linux的/var/lib/mysql/$(hostname).err或windows的c:\programdata\mysql\mysql server 8.0\data\*.err),需用grep "temporary password" *.err提取冒号后完整字符串;若未生成,则重执行mysqld --initialize --console获取。

不是密码错了,是根本没拿到那个只出现一次的临时密码,或者连上后被插件/锁定机制拦住了。
怎么找到 MySQL 8.0 初始化时生成的临时密码
MySQL 8.0 安装后不会把临时密码写进 /var/log/mysql/error.log 这类“常见路径”,而是写进数据目录下的错误日志(Linux 一般是 /var/lib/mysql/$(hostname).err,Windows 是 C:\ProgramData\MySQL\MySQL Server 8.0\Data\*.err)。
- 先确认数据目录:
mysqld --verbose --help | grep "datadir"或查my.cnf里的datadir值 - 进该目录,执行:
grep "temporary password" *.err - 必须复制整行中冒号后面**完整字符串**,包括末尾的
!、&等字符;粘贴时别带前后空格或换行符 - 如果搜不到,说明可能用了
--initialize-insecure(生成空密码),或初始化根本没成功——此时重跑mysqld --initialize --console并盯住终端输出
用临时密码登录报 ERROR 1045 怎么办
这个错绝大多数不是密码本身问题,而是连接方式或认证插件不匹配。
- 别用
mysql -uroot -p'xxx'直接拼接密码——含@、!、$等特殊字符时,shell 会提前解析;改用mysql -uroot -p然后手动输入 -
root@localhost和root@127.0.0.1是两个独立账号;临时密码只给前者;加-h 127.0.0.1就会连不上 - 老客户端(如 Navicat 旧版、MySQL Workbench 6.x、PHP 7.4 mysqli)不支持默认的
caching_sha2_password插件;登录时加--default-auth=mysql_native_password临时绕过 - Windows CMD 可能吞掉
&、^等字符,建议改用 PowerShell 或 Git Bash
登录后立刻报 ERROR 1820 或 ERROR 1819 怎么强制改密
MySQL 8.0 登录成功后若提示 “You must reset your password”,说明强制改密流程已触发,跳不过。
-
ERROR 1820:直接执行ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';,不能先做其他操作 -
ERROR 1819:新密码太简单,不满足validate_password默认策略(≥8 位、大小写字母 + 数字 + 特殊字符各一);可临时调低:SET GLOBAL validate_password.length = 6; - 改完建议显式执行
FLUSH PRIVILEGES;,某些插件组合下仍需它生效 - 开发环境想快速通过,可先卸载插件:
UNINSTALL PLUGIN validate_password;,再改密
Ubuntu/Debian 上报 ERROR 1698 怎么处理
这是 auth_socket 插件在起作用——它不认密码,只认系统用户身份。你不是输错密码,是根本没走密码验证流程。
- 先用系统维护账户登录:
sudo cat /etc/mysql/debian.cnf查到debian-sys-maint用户和密码,然后mysql -udebian-sys-maint -p - 进库后执行:
USE mysql; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; - 别忘了
FLUSH PRIVILEGES;,再退出重试mysql -uroot -p - 或者更简单:直接
sudo mysql进去(Ubuntu 默认允许 root 用系统权限免密进),再执行上面的ALTER USER
真正卡住人的地方从来不是“怎么改密码”,而是:临时密码藏在哪、localhost 和 127.0.0.1 被当成两个账号、caching_sha2_password 和老客户端不兼容、以及 auth_socket 在 Ubuntu 上静默接管了认证——这些细节不一个个对上,光试密码没用。











