Navicat能否连接云服务器MySQL取决于三件事:MySQL服务是否运行、云服务商安全组是否开放端口、MySQL用户是否授权远程访问,缺一不可;尤其注意安全组与本地防火墙需同时配置。
连接前必须确认的三件事
navicat 能否连上云服务器 mysql,不取决于 navicat 本身,而取决于云服务器端的配置是否放行。很多人测试连接失败,直接怀疑 navicat 或密码错了,其实问题常卡在这三处:
-
MySQL服务是否在运行(systemctl status mysqld或service mysql status) - 云服务商控制台的「安全组」是否开放了对应端口(默认
3306,若改过端口则填实际值) -
MySQL用户是否被授权从远程主机访问(比如执行过UPDATE user SET host = '%' WHERE user = 'root'; FLUSH PRIVILEGES;)
缺一不可。尤其注意:腾讯云/阿里云的安全组规则 ≠ 服务器本地防火墙,两者都要检查。
Navicat 填写参数时容易错的细节
填错主机地址或端口是最常见的连接失败原因。不是所有云数据库都用 3306,也不是所有公网 IP 都能直接填进「主机」栏。
- 阿里云 RDS 实例:主机填控制台里显示的「连接地址」(形如
xxx.mysql.rds.aliyuncs.com),端口填「端口」字段值(默认3306,但可能被设为3307等) - 腾讯云 CDB 实例:同样填「实例连接地址」(非服务器公网 IP),端口同上
- 自己部署在轻量/云服务器上的 MySQL:主机填服务器「弹性公网 IP」,端口填
3306(或你修改后的值);不要填localhost或内网 IP - 「用户名」和「密码」必须是 MySQL 内创建的、允许远程登录的账号,
root默认只允许本地登录,需手动授权
字符集乱码或连接后中文变问号
这不是连接失败,而是通信编码没对齐。Navicat 默认用 utf8,但 MySQL 8.0+ 默认是 utf8mb4,且 collation 是 utf8mb4_0900_ai_ci。
- 在 Navicat 新建连接时,点开「高级」选项卡 → 找到「编码」下拉框 → 明确选
utf8mb4 - 确保 MySQL 服务端配置文件(
/etc/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf)中有以下几行:
[client] default-character-set = utf8mb4 [mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_0900_ai_ci
改完重启 mysqld 服务。否则即使连接成功,新建库表时仍可能用错默认字符集。
SSH 隧道连接(当云厂商禁止直连 3306 时)
有些云环境(如部分企业版 RDS 或安全策略严格的 VPC)会关闭公网直连,只允许通过 SSH 跳转。这时不能用普通连接方式。
- 在 Navicat 连接设置中,切换到「SSH」选项卡(不是「SSL」)
- 勾选「使用 SSH 通道」,填入跳板机(通常是你的云服务器)的 SSH 地址、端口(
22)、用户名和私钥(或密码) - 「SSH 主机」填跳板机公网 IP,「SSH 端口」填
22,「MySQL 主机」填127.0.0.1(因为 MySQL 在跳板机本地),「MySQL 端口」填3306 - 关键点:
MySQL 主机必须是跳板机内部可访问的地址,不是云数据库的公网地址
这种模式下,Navicat 先连 SSH,再通过隧道连本地 MySQL,绕过了公网端口限制,也更安全。但前提是跳板机上已安装并运行 MySQL,或已配置好代理转发。


















