连接到远程 MySQL 服务器时出错

连接到远程 MySQL 服务器时出错

我在 Windows 机器上安装了 MySQL 5.5 服务器。

我能够从同一台机器上运行的控制台/应用程序连接到服务器,但不能从远程机器连接到服务器。使用以下命令进行连接时:

mysql -h xx.xx.xx.xx --port=3306 -u root -p

我收到以下错误:

错误 1042 (HY000):无法获取您的地址的主机名

我尝试将客户端 IP 的条目放入服务器的%windir%\system32\drivers\etc\hosts文件中,如下所示:

<client-ip>  <client-hostname>
  • 服务器:MySQL 5.5
  • 操作系统:Windows XP

答案1

我相信这是与 MySQL 在连接时尝试建立与您的 IP 地址关联的 DNS 名称有关。看这里有关更多信息,请访问 MySQL 网站。

您有两个选择:

1) 修复连接机器的反向 DNS。由于您已将机器添加到 hosts 文件中,因此这可能没有必要。您还应该在 MySQL 服务器上发出 FLUSH HOSTS 语句。有关此内容的更多信息,请参阅上面的相同链接。

2) 使用“--skip-name-resolve”选项运行 MySQL。但是,如果这样做,您将无法在 GRANT 语句中使用 DNS 名称。相反,您将只能使用 IP 地址。

2.1)或放入我的配置文件

[mysqld]
skip-name-resolve

如果可以的话,我推荐(1)。

希望这可以帮助。

答案2

这似乎是一个MySQL ver5.5 中报告的错误my.ini。使用文件[server] 部分中的以下选项解决了此问题

skip-name-resolve

它禁用MySQL 的 DNS 查找用于连接同行。

唯一需要记住的是:

...在这种情况下,您只能在 MySQL 授权表中使用 IP 号码。

答案3

我在 Windows 7 上遇到了同样的问题。禁用 Windows 防火墙对我有用。

相关内容