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


8

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

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

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

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

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

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

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

我该如何解决前两个原因,或者确定它们是问题的原因?还是可能还有另一个未列出的问题?


+1在2015年使用VB6!
raphael75 '18

看到我找到的这个链接:superuser.com/questions/1364906/…我用它解决了我的问题。
FarHooD

Answers:


2

您需要确保有:

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

2)两台机器之间存在连接(例如,它们可以相互ping通或通过另一种方法互相访问),两台机器之间的端口已打开

3)在my.ini/my.cnf其中有阻塞连接参数,例如:bind-address=a.a.a.askip-networking

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


0

这很可能是网络方面的问题,数据库服务提供商需要在防火墙(iptables)中创建新规则。仍然我们只需要确认提供者的一些信息即可。由于行为不稳定(有时您可以连接,有时无法连接)。因此,这不是用户权限问题(GRANT ALL ON ...)

  1. 确保它们已包含MySQL侦听端口,以解除防火墙的阻止/例外列表。最常见的是3306
  2. 尝试增加my.cnf中的max_connection参数
  3. 在my.cnf中,确保已注释掉“ 跳过网络 ”,并且 bind-address = 127.0.0.1
  4. 如果我们在命令行telnet ip_mysql_server 3306中使用以下命令,则输出是什么

1
在Windows上的telnet上最有可能不可用:使用powershell PS C:\ Windows \ system32> New-Object System.Net.Sockets.TcpClient(“ ip_mysql_server”,3306)客户端:System.Net.Sockets.Socket可用:78已连接:正确<==这表示您可以访问服务器ExclusiveAddressUse:False ReceiveBufferSize:65536 SendBufferSize:64512 ReceiveTimeout:0 SendTimeout:0 LingerState:System.Net.Sockets.LingerOption NoDelay:False
user906489

0

提供telnet(ip)的输出:端口

我上次遇到同样的问题,而iptables是当时的罪魁祸首。

服务器重新启动后,iptables规则变为默认值,并且未对某些端口应用过滤器。

检查iptables


0

首先,检查您是否为尝试连接到MySQL服务器的当前主机上的用户赋予了适当的特权。

  1. 首先检查您的主机名
  2. 然后通过超级用户(例如“ root”)登录到MySQL
  3. 检查是否提供了特权 select * from mysql.user where host="host_name"\G;
  4. 首先授予所有特权,然后尝试重新连接。

grant all on *.* to 'user'@'host_name' identified by 'Password';

希望对您有帮助。



-1

默认情况下,某些托管服务提供商会阻止,出于安全原因对他的MySql服务器的远程访问。如果您需要取消阻止远程访问服务,请告诉他们取消阻止此服务。

否则,请以本地主机的身份在本地测试您的应用程序,当它可以正常工作时,更改主机名等应用程序中的数据库参数,然后将其上传到您的网络托管服务器,那就可以了!!

请注意,您的数据库设计要与本地数据库设计进行检查,这非常重要!!!

希望对您有帮助。


2
您是否认为它们只会阻止第二次尝试?
dezso

-1

为mariadb用户添加的两件事:

1)的my.cnf对我们来说是太=>有我发现bind-address = 127.0.0.1线

2)您必须在更改my.cnf文件后重新启动服务

希望这可以帮助

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.