【问题标题】:Cannot connect to remote MySQL with VB6 (10060)无法使用 VB6 连接到远程 MySQL (10060)
【发布时间】:2012-09-10 10:37:57
【问题描述】:

我从 GKG.net 获得了一个托管计划,并且我有一个 VB6 连接字符串可以远程访问其中的 MySQL 数据库。我遵循了有关如何远程访问 MySQL 服务器的所有说明和教程。一切都很好,直到我收到一条错误消息:

[MySQL][ODBC 3.51 Driver] 无法连接到 'xxx.xxx.xxx.xxx' 上的 MySQL 服务器 (10060)

我在网上搜索了几个小时的解决方案,但仍然没有任何意义。我仔细检查了我的连接。我可以 ping 到我的静态 IP,但无法访问其中的 MySQL 服务器。

从 CPanel 我可以使用 phpMyAdmin 访问我的数据库。我测试了我的数据库,没有任何问题。一切似乎都是正确的。除了我仍然收到 VB6 的错误消息

我的连接字符串:

Dim conn As ADODB.Connection
Dim constr As String
Private Sub OpenServer()
    Set conn = New ADODB.Connection
    constr = "Driver={MySQL ODBC 3.51 Driver};" & _
             "PORT=" & db_port & ";" & _
             "SERVER=" & db_server & ";" & _
             "DATABASE=" & db_name & ";" & _
             "UID=" & db_user & ";" & _
             "PWD=" & db_pass & ";" & _
             "OPTION=3;" & _
             "STMT=;"
    conn.Open constr
End Sub

那么我该如何解决这个该死的连接问题呢?和 造成这种情况的几率是多少?

【问题讨论】:

  • 它很清楚地说它无法连接。详细信息错误或无法从 Internet 访问服务器。您的客户端代码对此无能为力。
  • @Deanna 大声笑我没有问我的代码有什么问题。我只是为那些问“你的连接字符串是什么?你确定它有效吗?”的人展示了它。无论如何,感谢您提到我的代码不能做任何事情,并且似乎我应该与我的提供商打架,以仔细检查我的服务器的远程访问。谢谢。

标签: mysql vb6 remote-access


【解决方案1】:

您访问其数据库服务器的主机很少允许从其托管环境之外远程访问数据库(我从未见过)。

如果您自己设置 MySql 数据库(在专用或虚拟服务器计划上),那么您应该能够将其设置为接受远程主机。在这种情况下,您需要修改 my.con 文件以允许远程主机(您也可以通过 MySql 管理工具进行操作),并且您需要授予您尝试使用远程 IP 访问权限的登录:

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

您之前对 SQLyog 的评论是一个非常好的主意。我可以担保该产品。这是一个很棒的工具。 MySql (Workbench - http://www.mysql.com/downloads/workbench/) 的免费管理工具也很不错,还可以让您测试远程访问。

【讨论】:

    【解决方案2】:

    收到错误 10060 时检查此远程连接解决方​​案

    http://forums.mysql.com/read.php?34,49742,239961

    http://www.bigresource.com/VB-Remote-MySQL-Server-h6Z8Cbaszz.html#

    MySQL 可以很容易地处理远程连接。但是,您必须设置 MySQL 以允许您的用户进入。另一件事是确保在主机上打开端口 3306。如果不是,那么您将无法连接到 MySQL。最简单的方法是...

    远程登录我的主机 3306

    如果你得到类似... , 3.23.54-log▬I_&:309i☻

    然后 3306 端口打开,MySQL 正在监听。

    接下来,确保您的用户 ID 已设置为允许访问 MySQL 服务器。您可以使用 mysql 客户端软件或 mysqlcc 软件来完成此操作。

    希望对你有帮助

    【讨论】:

    • 我已经通过了您提供的链接。什么都解决不了。端口 3306 为 TCP 和 UDP 打开。我可以 ping 我的静态 IP 但无法连接到 MySQL。 10060 错误的原因并不明显,这就是为什么我要砸墙。此外,如果您能找到我需要有关我的托管服务提供商如何处理此问题的特殊信息。感谢您的回答,我会尽快将 SQLyog 用作 mysqlcc。
    【解决方案3】:

    我遇到了这个问题。我可以从本地主机连接,但不能从客户端计算机连接。我关闭了 Windows 防火墙(Windows 8)。然而,没有喜悦。然后我在防火墙高级设置中创建了一个新规则,并且它起作用了。新规则只允许我的专用网络上端口 3306 上的传入连接。

    【讨论】:

      【解决方案4】:

      VB6 的另一种方法。我在我所有的应用程序中都这样使用它,并且它已经工作了多年。

      将 StoreDB 调暗为 ADODB.Connection

      出错后继续下一步

      设置 StoreDB = 新 ADODB.Connection

      StoreDB.Open "Driver={MySQL ODBC 3.51 Driver};Server=000.000.000.000;Port=3306;Database=yourDBName;User=Someusername;Password=Somepassword;OPTION=8;"

      如果 Err.Number = 0 那么

      [要执行的VB6代码]

      否则

      myErrorString = Err.Description

      如果结束

      StoreDB.关闭

      设置 StoreDB = 无

      如前所述,确保端口为 3306。我有一台使用 3307 的主机。我认为您的代码没有问题。您可能需要与主机进行排序。

      【讨论】:

        【解决方案5】:

        将 mysqlid.exe 添加到您的 Windows 防火墙设置中以远程访问您的服务器

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-28
          • 1970-01-01
          • 1970-01-01
          • 2015-09-13
          • 1970-01-01
          相关资源
          最近更新 更多