90%的Navicat连接腾讯云MySQL超时是服务端配置与安全组双重拦截所致;需检查腾讯云安全组是否开放3306端口、MySQL是否监听0.0.0.0:3306、远程用户权限是否允许非localhost访问,并配置Navicat keep-alive及MySQL 8+认证插件兼容性。
navicat 连接腾讯云 mysql 超时,**90% 是服务端配置 + 云平台安全组双重拦截导致的,不是网络慢或客户端问题**。直接查这两处,比反复调 navicat 设置更有效。
检查腾讯云安全组是否放行 3306 端口
腾讯云默认不开放 MySQL 端口,即使你本地能 ping 通服务器 IP,3306 仍可能被拦截。
- 登录腾讯云控制台 → 轻量应用服务器(或云服务器 CVM)→ 找到对应实例 → 「防火墙」或「安全组」
- 添加入站规则:
协议类型:TCP,端口:3306,源 IP:0.0.0.0/0(测试阶段可全开;上线后建议替换为你的本地公网 IP) - 保存后等待 1–2 分钟生效,不要跳过这步 —— 安全组策略不是实时推送的
确认 MySQL 服务监听在 0.0.0.0:3306
很多用户以为开了安全组就万事大吉,但 MySQL 默认只绑定 127.0.0.1,根本收不到外部请求。
- SSH 登录服务器,执行:
sudo netstat -tulnp | grep :3306 - 如果输出中只有
127.0.0.1:3306或没结果,说明 MySQL 没对外监听 - 编辑配置文件(路径因版本而异,常见为
/etc/mysql/mysql.conf.d/mysqld.cnf或/etc/my.cnf) - 找到
bind-address行,改为:bind-address = 0.0.0.0;若该行被注释,取消注释 - 重启服务:
sudo systemctl restart mysql(Ubuntu/Debian)或sudo systemctl restart mysqld(CentOS/RHEL)
验证远程用户权限是否生效
即使 MySQL 监听了 0.0.0.0,用户仍可能只允许 localhost 登录 —— 这是超时错误最隐蔽的诱因。
- 登录 MySQL:
mysql -u root -p - 执行:
USE mysql; SELECT user, host FROM user WHERE user = 'root'; - 若
host列全是localhost,需授权远程访问:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; - 刷新权限:
FLUSH PRIVILEGES; - 注意:
%表示任意 IP;如只允许某固定 IP,把%换成你的本地公网 IP(不是局域网 IP)
Navicat 连接设置里别忽略 keep-alive 间隔
连接能建上但打开表卡顿、频繁断连,大概率是心跳包失效 —— MySQL 默认 wait_timeout 通常为 28800 秒(8 小时),但腾讯云部分实例或代理层会提前清理空闲连接。
- Navicat 编辑连接 → 「高级」→ 勾选「保持连接间隔」
- 值设为
30(单位秒),不是默认的240 - 这个设置不能替代服务端配置,但能显著减少“第一次查询慢”现象
- 若用的是 MySQL 8+,还需确认用户认证插件兼容性:
SELECT user, plugin FROM mysql.user WHERE user='root';,若返回caching_sha2_password,需执行:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES;
真正卡住的地方往往不在 Navicat 界面里,而在腾讯云控制台的安全组、MySQL 的 bind-address、以及 user 表的 host 字段 —— 这三处漏掉任何一项,都会表现为“连接超时”,而非明确报错。


















