欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > Windows远程连接MySQL报错,本地navicat能连接MySQL

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

2025/5/9 3:56:29 来源:https://blog.csdn.net/weixin_46011290/article/details/147742088  浏览:    关键词:Windows远程连接MySQL报错,本地navicat能连接MySQL

一、报错

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重新来@@(彻底卸载MySQL;MySQL安装全过程;Mysql8安装)

续:

本地能访问,远程访问不了MySQL,明明防火墙也关了,MySQL的root用户也开放权限了,最后的原因就是远程服务器本身的问题,问管理员服务器的开放端口有哪些@@

远程服务器压根没开放MySQL默认端口3306,所以访问不到,需要把MySQL默认配置文件my.ini 里默认端口3306改了(改成服务器开放了那些端口,我这边后来才从管理员那边知道就开了几个端口);

改完配置文件两个地方的端口后,如果MySQL服务启动不了,两方面原因:
一个是不是改的端口进程已经被占了,
一个是没被占说明MySQL 服务未读取到你修改的 my.ini 文件(我选择重新卸载再下载默认端口选开放的端口)
在这里插入图片描述

如果当初下载MySQL没修改默认下载路径的画, my.ini 文件在这(最新MySQL8这配置文件路径和以前不一样):

C:\ProgramData\MySQL\MySQL Server 8.0

在这里插入图片描述

我已经第三次下载MySQL了,哈哈哈哈
参照Mysql8安装
懒人直接全下,卸载的时候多卸几个
在这里插入图片描述
没有next就一路选execute执行;
在这里插入图片描述
该端口啊
在这里插入图片描述
安装完MySQL设置权限,走一下(1)(2)(3)(4)流程

注意报错ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061),因为端口改为4000了
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词