Navicat连接MySQL失败_提示1045 Access denied for user怎么办【配置】

冰火之心
发布: 2025-12-22 10:33:09
原创
554人浏览过
Navicat连接MySQL报“1045 Access denied”错误的解决步骤:一、核对用户名密码及Host匹配;二、检查并兼容认证插件(如改用mysql_native_password);三、确认用户权限与连接来源Host一致;四、启用MySQL远程访问(修改bind-address);五、排查Navicat连接参数(SSL、端口、SSH)。

navicat连接mysql失败_提示1045 access denied for user怎么办【配置】

如果您在使用Navicat连接MySQL时收到“1045 Access denied for user”错误提示,说明MySQL服务器拒绝了当前提供的用户名或密码认证。该错误通常源于用户权限配置、认证插件不兼容或连接参数设置不当。以下是解决此问题的步骤:

一、确认用户名和密码是否正确

MySQL 1045 错误最常见原因是输入的用户名或密码与MySQL中存储的凭证不一致。需确保Navicat中填写的账号信息与MySQL服务端实际创建的用户完全匹配,包括大小写和特殊字符。

1、打开MySQL命令行客户端或通过其他已授权客户端(如phpMyAdmin)执行:SELECT User, Host FROM mysql.user;

2、核对返回结果中是否存在您在Navicat中使用的用户名,并确认其对应的Host值是否允许当前连接来源(例如'user'@'localhost'仅允许本机连接,而'user'@'%'允许任意主机)。

3、若不确定密码,可在MySQL中重置:执行ALTER USER 'your_user'@'host' IDENTIFIED BY 'new_password';

二、检查用户认证插件类型

MySQL 8.0+ 默认使用caching_sha2_password插件,而旧版Navicat可能仅支持mysql_native_password。若插件不兼容,即使密码正确也会触发1045错误。

1、查询当前用户的认证插件:SELECT User, Host, plugin FROM mysql.user WHERE User = 'your_user';

2、若plugin字段显示为caching_sha2_password,需切换为兼容插件:执行ALTER USER 'your_user'@'host' IDENTIFIED WITH mysql_native_password BY 'password';

3、执行FLUSH PRIVILEGES;使更改立即生效。

三、验证用户权限及Host匹配规则

MySQL根据User和Host两个字段联合判断是否允许登录。若Host值过于严格(如限定为具体IP或localhost),而Navicat尝试从其他地址(如127.0.0.1)连接,则会因Host不匹配被拒绝。

1、检查Navicat连接设置中的“主机名或IP地址”字段,确认其与mysql.user表中对应用户的Host值一致(例如localhost ≠ 127.0.0.1,除非显式授权)。

Videoleap
Videoleap

Videoleap是一个一体化的视频编辑平台

Videoleap 139
查看详情 Videoleap

2、若需允许本地多方式连接,可创建双Host用户:CREATE USER 'user'@'localhost' IDENTIFIED BY 'pass'; CREATE USER 'user'@'127.0.0.1' IDENTIFIED BY 'pass';

3、为每个用户单独授权:GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost'; GRANT ALL PRIVILEGES ON *.* TO 'user'@'127.0.0.1'; FLUSH PRIVILEGES;

四、检查MySQL服务是否启用远程访问

若Navicat运行在非MySQL服务器本机,且MySQL配置禁止远程连接,则即使凭证正确也无法建立TCP连接,部分场景下亦会返回1045而非更明确的连接拒绝提示。

1、编辑MySQL配置文件(如my.cnf或my.ini),查找bind-address参数。

2、将其值由127.0.0.1改为0.0.0.0或注释掉该行,以允许监听所有网络接口。

3、重启MySQL服务:sudo systemctl restart mysqld(Linux)或通过服务管理器重启(Windows)。

五、排查Navicat连接参数配置

Navicat中部分高级连接选项若设置不当,可能导致认证流程异常,例如SSL强制启用但MySQL未配置证书,或端口填写错误导致请求被转发至错误服务。

1、在Navicat连接窗口中点击“高级”选项卡,确认“使用SSL”未被意外勾选,除非MySQL已部署并启用SSL。

2、检查“端口”字段是否为MySQL实际监听端口(默认3306),可通过netstat -an | grep :3306(Linux/macOS)或netstat -ano | findstr :3306(Windows)验证。

3、在“SSH”选项卡中确认未启用SSH隧道,除非确需通过跳转机连接;若误启用,会导致连接逻辑绕过本地MySQL认证流程。

以上就是Navicat连接MySQL失败_提示1045 Access denied for user怎么办【配置】的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号