我遇到了无法连接到他们的 MySQL 服务器的最终用户的问题。
事实:
- 客户端是企业域上的 Windows XP。组策略已禁用 Windows 防火墙,并且没有安装其他防火墙软件。
- 该软件是 MySQL 自己的查询浏览器,v1.1.20,是允许安装的。
- 用户名和密码正确。
- 查询浏览器在尝试时比正常连接花费更长的时间,然后返回错误消息“
MySQL Error Number 2003 - Can't connect to MySQL Server on '
主机名' (10060)
” - 查询浏览器可以毫无问题地“ping”服务器。
- 使用 Window 自己的
telnet
命令手动连接成功,握手启动清晰可见。因此主机名在该 PC 上解析,并且没有网络问题(例如路由)。 - 我们尝试重新安装查询浏览器无济于事。
- 服务器运行良好,其他需要连接的人(包括我自己)都可以成功连接,其中大多数使用完全相同的版本。所以这不是服务器问题。
谷歌搜索错误显示这是一个典型的不可用连接问题,并且许多链接显示服务器的修复,但问题似乎完全存在于查询浏览器的安装中,这没有任何意义。因此谷歌没有帮助。
有没有其他人看到这个或可以提供建议?
这可能不适用于 OP,因为他们的客户端在 Windows XP 公司域上运行,但我在 OSX/Unix 下遇到了类似的问题,当 SSH 隧道配置正确时遇到 2003 错误。原来这是 MySQL 查询浏览器的一个特性:
我一直认为它们完全是同义词。一旦我进行了调整,一切都按预期工作-希望这对某人有所帮助。
我无法回答您的问题,但可以说我在使用 Win XP 机器之前也有过同样的经历。在那种情况下,它的查询浏览器不会连接到任何机器上的 MySQL 服务器,包括本地实例。因此,我现在使用名为MySQL-Front的第三方产品。它不是免费的,但至少对我来说它物有所值。
我可能已经找到了解决这个问题的方法。连接 MySQL 服务器时,不要在 MySQL Query Browser 中保存凭据和信息。相反,每次登录时都要重新键入它们。这对我来说适用于域中的每台计算机。
发生此问题的原因可能有很多,因此我将根据您提供的信息尝试提供一些建议的解决方案。请记住,这些建议是在黑暗中拍摄的,因为如果没有访问服务器,绝对无法诊断此问题。话虽如此,我将开始列出:
检查配置文件中的skip_networking行是否设置为ON。如果是尝试注释掉这一行。
您还可以检查配置文件中是否未设置bind-address = 127.0.0.1 。此行会阻止除 localhost 之外的所有人连接到数据库,而您不希望这样。
第三个建议是您可以尝试连接本地帐户而不是域帐户。Windows Server 不允许域帐户使用端口 3306。
检查用户是否具有从外部 IP 地址连接到服务器所需的权限。您可以尝试以下(或类似的):
每次更改配置文件时,请记住重新启动 mysql 守护程序。这个错误信息有点误导,所以我这对你有帮助!
如果您使用的是 Windows XP,则转到网络适配器属性,卸载“Microsoft TCP/IP 版本 6”,重新启动计算机。