我在 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 防火墙对我有用。