远程 MySQL 连接失败 (10060) - “无法连接到 domainname.com(10060) 上的 MySQL 服务器”

Ash*_*jar 12 mysql connectivity

我在 VB6 中开发了一个应用程序,并且正在使用在线 MySQL 数据库服务器来存储我的应用程序数据。

我第一次尝试连接到我的数据库服务器是成功的,但在关闭我的应用程序并再次启动它后,我得到:

无法连接到 MySQL 服务器 (10060)"

一段时间后(大约 30 分钟),我可以再次成功连接到数据库。

  • 我已经为所有 MySQL 系统和全局变量(如connection_timeoutwait_timeout等)提供了最大值。
  • 我已将所有权限授予我的 MySQL 用户。
  • 我电脑上的防火墙关闭了。
  • 当应用程序关闭时,所有连接都正确关闭。

我问过提供在线 MySQL 数据库服务的技术人员,他们给了我以下三个原因:

  1. 您尝试连接的本地计算机未在服务器上列入白名单。
  2. 已超出用户的最大连接数。
  3. 当时 MySQL 服务器宕机了(尽管他们说他们的服务器没有宕机)。

如何解决前两个原因,或确定它们是问题的原因?或者是否还有其他问题未在此处列出?

Ahm*_*sna 5

你需要确保有:

  1. 创建的具有远程访问权限的用户,例如 user@'xxxx'

  2. 两台机器可以建立连接(例如它们可以互相ping通或通过其他方法互相访问) 两台机器之间打开端口

  3. 检查您的配置文件 my.ini/my.cnf中的参数,例如bind-addressskip-networking。是否有阻塞连接参数,如:bind-address=a.a.a.askip-networking

  4. 当您尝试从另一台计算机连接时,该服务已启动并正在运行


pik*_*kai 1

这很可能是网络方面的问题,数据库服务提供商需要在防火墙(iptables)中创建新规则。不过,我们只需要从提供商那里确认一些事情。由于行为不稳定(有时可以连接,有时则不能)。所以这不是用户权限问题(GRANT ALL ON ...)

  1. 确保他们已将 MySQL 侦听端口包含在防火墙的解锁/例外列表中。最常见的是 3306
  2. 尝试增加my.cnf 中的max_connection参数
  3. 在 my.cnf 中,确保注释掉 “ skip-networking ”,同时绑定地址 = 127.0.0.1
  4. 如果我们从命令行 telnet ip_mysql_server 3306使用以下命令,输出是什么

  • 在 Windows 上 telnet 很可能不可用:使用 powershell PS C:\Windows\system32> New-Object System.Net.Sockets.TcpClient("ip_mysql_server", 3306) 客户端:System.Net.Sockets.Socket 可用:78 已连接: True <== 这表示您可以访问服务器 ExclusiveAddressUse : False ReceiveBufferSize : 65536 SendBufferSize : 64512 ReceiveTimeout : 0 SendTimeout : 0 LingerState : System.Net.Sockets.LingerOption NoDelay : False (2认同)