Navicat连接云MySQL失败的四大主因是白名单未配置、SSL设置错误、账号Host限制为localhost、数据库未授权或未创建;需依次检查云控制台白名单IP、连接地址与端口、SSL开关及CA文件、账号Host值(应为%或对应IP)、Database字段留空或填已授权业务库。
Navicat 连接失败:提示 Access denied 或超时,先查白名单
云 mysql 实例默认拒绝所有外网 ip 访问,navicat 连不上,八成是白名单没开。不是账号密码错,也不是 navicat 本身问题。
实操建议:
- 登录云厂商控制台(如阿里云 RDS、腾讯云 CDB、AWS RDS),找到对应 MySQL 实例的「白名单设置」或「安全组/网络 ACL」
- 把你的本地公网 IP 加进去——不是
192.168.x.x,不是10.x.x.x,是百度搜“我的 IP”看到的那个 IPv4 地址(注意动态 IP 可能变) - 如果用公司网络,可能出口是 NAT 网关,得加整个 CIDR 段(比如
203.208.60.0/24),但别写0.0.0.0/0,太危险 - 改完白名单,等 30 秒左右再试连接,部分平台有缓存延迟
Navicat 新建连接填什么:重点看端口、SSL 和主机名
云 MySQL 的连接地址不是 localhost,端口也不一定是 3306,且多数强制要求 SSL(尤其新购实例)。
实操建议:
-
Host填控制台里写的「内网地址」或「外网地址」——外网连必须用「外网地址」,它通常带域名(如xxx.mysql.rds.aliyuncs.com) -
Port别硬写3306,去控制台确认,有些厂商默认用3306,但也有用3307或自定义端口的 - 勾选
Use SSL:如果控制台里「SSL 开启状态」是「已启用」,这里必须勾;不勾会报SSL connection error或直接拒绝 - SSL 设置里,
CA File一般不用填(云厂商通常用系统信任链),但某些平台(如 AWS RDS)要求下载并指定rds-ca-2019.pem文件路径
用户权限不足:用 root 登录也连不上?检查账号 Host 限制
云 MySQL 创建的高权限账号(比如 root),默认 Host 往往设为 127.0.0.1 或 localhost,只允许本机登录,不接受远程连接。
实操建议:
- 用控制台自带的「DMS 数据管理服务」或临时开通的命令行终端,执行:
SELECT User, Host FROM mysql.user WHERE User = 'your_user';
- 如果
Host是localhost,就得改:执行ALTER USER 'your_user'@'localhost' IDENTIFIED BY 'xxx' REQUIRE NONE;
再执行CREATE USER 'your_user'@'%' IDENTIFIED BY 'xxx'; GRANT ALL ON *.* TO 'your_user'@'%'; FLUSH PRIVILEGES;
- 更稳妥的做法是:在控制台「账号管理」页新建账号时,
Host直接选%(表示任意 IP),别依赖默认值 - 注意:部分云厂商(如阿里云)不允许
@'%',只能填具体 IP 或 CIDR,那就得按白名单同步配
连接成功但查不了表:Unknown database 或权限报错
云 MySQL 实例里默认不创建业务库,你连上的是实例层面,不是某个数据库。Navicat 默认尝试连接 mysql 库(系统库),但多数云平台禁止访问系统库。
实操建议:
- 新建连接时,
Database字段**留空**,或者填你事先在控制台创建好的库名(比如myapp) - 如果填了不存在的库名,会报
Unknown database 'xxx';如果填了mysql,大概率报Access denied for database 'mysql' - 建库必须走控制台(「数据库管理」页)或 DMS,不能靠 Navicat 执行
CREATE DATABASE(权限被锁死) - 连上后右键「刷新」,如果看不到任何库,说明当前账号没被授权任何数据库,回控制台给账号「授权」到具体库
白名单、SSL、Host 通配符、数据库授权这四点漏掉任一环,Navicat 都连得磕磕绊绊。最常被忽略的是:以为开了白名单就万事大吉,结果账号 Host 还卡在 localhost。










