error 1045主因是mysql权限系统初始化失败,非密码错误;常见于残留数据目录未清、匿名用户冲突、mysql 8.0+认证插件不兼容或配置误启skip-grant-tables。

安装失败时出现Error 1045,基本不是密码问题,而是MySQL服务残留或权限表初始化异常——直接重装不删干净,100%复现。
为什么刚装完就报1045?
安装程序在最后一步尝试用root连接本地实例校验安装结果,但此时mysql.user表可能为空、root用户缺失,或存在冲突的匿名用户(''@'localhost')。这不是你输错密码,是MySQL压根没成功初始化权限系统。
- Windows下常见于未清空
%ProgramData%\MySQL目录,旧的mysql数据库文件残留 - Linux下常见于
/var/lib/mysql/mysql目录未清理,或SELinux阻止了初始化写入 - MySQL 8.0+还可能因
caching_sha2_password插件未被安装脚本正确处理而卡在验证环节
跳过安装校验强行完成安装(临时救急)
如果你只需要让安装流程走完、后续手动修复,可在安装向导最后一步弹出1045错误时:
- 点“取消”退出安装向导
- 打开任务管理器 → 结束所有
mysqld.exe进程 - 手动删除残留数据目录:
%ProgramData%\MySQL\MySQL Server *.*\Data(Win)或/var/lib/mysql(Linux) - 重新运行安装程序,勾选“Use Legacy Authentication Method”(MySQL 8.0+必须选)
- 设置密码时**不要留空**,哪怕填
root也比空密码强
安装后仍连不上?重点查这三处
即使安装“成功”,命令行执行mysql -u root -p仍报1045,优先检查:
-
my.ini(Windows)或my.cnf(Linux)里是否误加了skip-grant-tables——它会让后续所有登录都跳过验证,反而导致FLUSH PRIVILEGES失效 - 执行
SELECT host,user,plugin FROM mysql.user WHERE user='root';,确认返回至少一行,且plugin字段不是auth_socket(Linux常见)或空值 - Windows服务中MySQL实例名是否为默认
MySQL?若改过名(如MySQL80),安装程序可能连错了服务
最易被忽略的是:MySQL 8.0+安装时若没勾选传统认证,新创建的root用户会绑定caching_sha2_password插件,而老版本客户端(如Navicat旧版、某些Python驱动)不支持——这时错误仍是1045,但根源是协议不兼容,不是密码错。











