Windows远程连接MySQL报错,本地navicat能连接MySQL

发布于:2025-05-07 ⋅ 阅读:(20) ⋅ 点赞:(0)

一、报错

telnet 119.87.111.79 3306

​​“无法打开到主机的连接。在端口 3306: 连接失败”​​ 表明无法通过 TCP 协议连接到目标服务器的 3306 端口。

二、目的

(1)​​Telnet 测试的目的​​
Telnet 仅用于测试 ​​TCP 端口是否开放​​,不涉及 MySQL 协议。
如果 Test-NetConnection 或 Telnet 显示端口连通,但 MySQL 仍无法连接,需检查:
①MySQL 用户权限(是否允许远程登录)。
②防火墙或云服务器安全组配置。
(2)​​为什么需要测试端口?​​
如果 telnet 119.87.111.79 3306 失败,可能的原因包括:
①防火墙阻止了 3306 端口。
②服务器未监听 3306 端口(需检查 netstat -an)。
③网络路由问题(如 NAT 或 VPN 配置错误)。

三、原因

由于Telnet 测试没通过,可以排查以下原因

(1)​​目标服务器防火墙/安全组未开放 3306 端口​​

远程服务器(119.87.111.79)的防火墙或云服务商的安全组可能阻止了 3306 端口的入站连接。
​​本地服务器​​:
在远程服务器上执行以下命令,确认防火墙允许 3306 端口:
确认防火墙规则是否生效​
​步骤 1:检查规则列表

netsh advfirewall firewall show rule name="Open MySQL 3306"

​​预期输出​​:

规则名称: Open MySQL 3306
方向: 入站
操作: 允许
协议: TCP
本地端口: 3306

在这里插入图片描述

(2)​​MySQL 服务未监听远程 IP​​

远程服务器的 MySQL 配置可能仅绑定在 127.0.0.1(本地环回地址),而非 0.0.0.0(所有网络接口)。
在远程服务器上执行​​:

netstat -an | findstr 3306

​​期望输出​​:

TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING

在这里插入图片描述

如果显示 127.0.0.1:3306,需修改 MySQL 配置文件(my.cnf):

[mysqld]
bind-address = 0.0.0.0

重启 MySQL 服务。

(3)​​网络路由问题​​

本地网络或中间网络设备(如路由器、企业防火墙)可能阻止了连接。
尝试连接其他公共端口(如 HTTP 80 端口)测试本地网络是否正常:

telnet example.com 80

如果失败,可能是本地防火墙、VPN 或企业网络策略阻止了连接。

(4)​​目标服务器未运行 MySQL​​

远程服务器可能未安装 MySQL,或服务未启动。
​​在远程服务器上执行​​:
确认服务正在运行。如果未运行,启动服务:

net start mysql

(5)​使用 traceroute 检查网络路径​

在本地执行:

tracert  119.87.111.79

查看连接在哪一跳中断,定位网络问题。

(6)​​检查 MySQL 用户权限​

在远程服务器上登录 MySQL​​:

GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码';
FLUSH PRIVILEGES;

确保用户允许从任意 IP(%)连接。
在这里插入图片描述

​总结​​

​​优先检查远程服务器的防火墙和安全组​​:这是最常见的连接失败原因。
​​确认 MySQL 监听地址为 0.0.0.0​​:确保服务允许远程连接。
​​检查本地网络和路由​​:排除本地策略或中间网络问题。
如果以上步骤均无问题,但仍无法连接,请提供以下信息进一步排查:

远程服务器的操作系统和防火墙配置。
MySQL 错误日志(通常位于 /var/log/mysql/error.log 或 data/hostname.err)。
是否通过 VPN 或企业网络连接?

啊啊啊啊啊啊啊排查不出来,难不成因为远程MySQL5,本地MySQL8原因??
算了,卸了MySQL5重新来@@(彻底卸载MySQLMySQL安装全过程Mysql8安装


网站公告

今日签到

点亮在社区的每一天
去签到