核心是打通“本地工具—云服务器—数据库服务”三层链路:一、云平台放行3306端口并配置白名单;二、MySQL开启远程访问(bind-address=0.0.0.0、创建%用户并授权);三、Navicat正确填写公网地址、端口、用户名密码;四、通过ping/telnet/日志分层排错。

用Navicat连接云端MySQL数据库,核心是打通“本地工具—云服务器—数据库服务”三层链路。关键不在Navicat本身,而在于云环境的网络放行、数据库权限开放和连接参数准确。下面分四步说清楚。
确认云服务器已开通公网访问并放行3306端口
云数据库(如腾讯云CDB、阿里云RDS)或自建MySQL(装在ECS上),必须让外部能触达。注意区分两种情况:
- 如果是云数据库服务(RDS/CDB):登录控制台,找到实例 → 进入「白名单」或「安全组」设置 → 添加你的本地公网IP(或临时填 0.0.0.0/0 测试用),端口填 3306(若改过端口则填实际端口);
- 如果是自建MySQL(装在ECS里):除了云平台的安全组规则,还需检查服务器内部防火墙(如 firewalld 或 ufw)是否放行3306;
- 部分云厂商(如阿里云RDS)默认禁用公网地址,需手动在控制台开启「公网地址」,生成一个独立的公网连接域名或IP。
确保MySQL服务允许远程连接
MySQL默认只接受 localhost 连接。需进入服务器执行以下操作:
- 用 root 登录 MySQL:
mysql -u root -p; - 创建专用于Navicat的用户(不建议直接用 root 远程):
CREATE USER 'navicat_user'@'%' IDENTIFIED BY '强密码123!'; - 授权(按需调整范围,开发环境可给全部):
GRANT ALL PRIVILEGES ON *.* TO 'navicat_user'@'%' WITH GRANT OPTION; - 刷新权限:
FLUSH PRIVILEGES;; - 检查 MySQL 配置文件(
/etc/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf)中bind-address是否为0.0.0.0(而非127.0.0.1),改完需重启 MySQL:sudo systemctl restart mysql。
在Navicat中正确填写连接参数
打开 Navicat → 「连接」→ 「MySQL」,填入以下信息:
- 连接名:比如「腾讯云-测试库」,方便识别;
-
主机:填云数据库的公网地址——如果是 RDS/CDB,用控制台提供的「公网连接地址」(通常是域名,如
xxx.mysql.tencentyun.com);如果是 ECS 自建,填该服务器的公网 IP; - 端口:默认 3306,若修改过则填对应端口;
-
用户名 / 密码:填上一步创建的用户(如
navicat_user)及密码; - (macOS 用户注意)若连接后看不到数据库列表,点开「数据库」页签 → 勾选「使用自定义数据库列表」→ 手动勾选目标库 → 勾选「自动打开」。
测试与排错要点
点击「测试连接」前,先自查三项:
- 本地能否 ping 通云服务器公网 IP 或域名?(若不通,说明网络层未打通);
- 用 telnet 或 nc 检查 3306 端口是否可达:
telnet xxx.xxx.xxx.xxx 3306(Windows)或nc -zv xxx.xxx.xxx.xxx 3306(macOS/Linux); - MySQL 错误日志里是否有拒绝连接记录?常见提示如
Host 'xxx' is not allowed to connect,说明用户 host 设置不对或没刷权限; - Navicat 报错 “Access denied for user”:检查用户名密码是否输错、大小写是否敏感、是否多空格;
- 报错 “Connection timeout”:优先排查安全组、防火墙、bind-address 和 MySQL 是否真正运行(
systemctl status mysql)。











