Navicat连接MySQL报“1045 Access denied”错误的解决步骤:一、核对用户名密码及Host匹配;二、检查并兼容认证插件(如改用mysql_native_password);三、确认用户权限与连接来源Host一致;四、启用MySQL远程访问(修改bind-address);五、排查Navicat连接参数(SSL、端口、SSH)。

如果您在使用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;使更改立即生效。
MySQL根据User和Host两个字段联合判断是否允许登录。若Host值过于严格(如限定为具体IP或localhost),而Navicat尝试从其他地址(如127.0.0.1)连接,则会因Host不匹配被拒绝。
1、检查Navicat连接设置中的“主机名或IP地址”字段,确认其与mysql.user表中对应用户的Host值一致(例如localhost ≠ 127.0.0.1,除非显式授权)。
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;
若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中部分高级连接选项若设置不当,可能导致认证流程异常,例如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中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号