MySQL无法连接远程服务器

标签 mysql networking port windows-server-2008-r2 firewall

我们在其中一台远程虚拟机 (Windows Server 2008) 中有一个 MySQL 服务器。直到昨天,我们才能在本地计算机上安装的工作台的帮助下连接到 MySQL 服务器。

昨天安装了虚拟机的计算机重新启动。之后我们就无法连接MYSQL了。虽然我可以 ping 并远程连接这个特定的虚拟机。我什至可以在虚拟机中安装的工作台内执行查询。

我不太擅长网络或安全相关的东西。请帮我解决这个问题。

错误:

Your connection attempt failed for user 'root' from your host to server at ABC:3306: Can't connect to MySQL server on 'ABC' (10060)

最佳答案

确实,这可能是多种可能的原因,希望这是一个开始:

检查基本网络

从 MySQL 虚拟机打开命令提示符并输入 IPCONFIG/ALL。这将显示绑定(bind)到不同网络适配器的所有 IP 地址。

检查您连接的 IP 地址是否列在此处,虚拟机可能已从 DHCP 获取新 IP,而不是在重新启动后拥有静态 IP。

主机名与 IP

您应该检查主机名解析,从您引用的错误来看,它表明您正在连接到主机名而不是服务器 IP。检查您的计算机是否可以使用正确的 IP 地址解析为主机名 - 也可以在连接字符串中将主机名更改为服务器的实际 IP。

MySQL配置文件

您说过您在 Windows 上运行 MySQL,习惯上将 my.cnf 重命名为 my.ini。 4.1.5 之前的旧版本 MySQL 的配置文件通常存储在 c:\my.inic:\windows\my.ini 中。对于此之后的版本,默认位置通常是安装目录 %PROGRAMDATA%\MySQL\MySQL Server xxx

找到配置文件后,请在记事本(或类似的文本编辑器)上打开它,找到[mysqld]部分并确保port=端口您正在尝试连接bind-address=您尝试连接的 IP 地址。

服务器端口

从 MySQL 虚拟服务器中打开命令提示符并输入 netstat –ano,这将显示进程列表以及它们正在监听的 IP/端口。 MySQL 服务器应在此处列出,并且应监听配置文件定义的相同端口和 IP。

Windows 防火墙

您应该有一条允许 MySQL 的防火墙规则,以下将在默认端口 3306 上添加一条

netsh advfirewall firewall add rule name="MySQL Server" action=allow protocol=TCP dir=in localport=3306

确定这是否是特定于机器的

您可以在另一台工作站上设置 MySQL Workbench 应用程序,并尝试连接以确定这是一个全局问题还是仅与您的特定工作站相关的问题。

关于MySQL无法连接远程服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21627421/

相关文章:

php - 使用 php 进行分页而不使用 limit 语法

php - 如何使用其名称从数据库中的文件夹中仅检索一张所需的图像?

linux - 基于 Linux 的系统的 OSI TP4 实现

java - 如何在 JAVA 中更改服务器套接字连接的回复端口

scala - Scala 中的哪些功能/特性仅作为对底层平台的让步而存在,如果针对其他目标应该删除?

mysql - 返回每行的行组总和

MySQL:如何分别从列中计数?

java - 聊天客户端的验收测试

python-3.x - 从 CSV 文件创建 Networkx Graph

api - NGINX - 不同端口上的反向代理多个 API