1

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

[MySQL][ODBC 3.51 驱动程序] 无法连接到 '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

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

4

5 回答 5

5

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

如果您自己设置 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/)也很不错,还可以让您测试远程访问。

于 2012-09-11T00:06:18.103 回答
4

当您收到错误 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☻</p>

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

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

希望这可以帮助

于 2012-09-10T10:46:23.543 回答
0

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

于 2014-06-27T04:39:14.377 回答
0

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

将 StoreDB 调暗为 ADODB.Connection

出错时继续下一步

设置 StoreDB = New 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 的主机。我认为您的代码没有问题。您可能需要与主机进行排序。

于 2014-11-03T10:01:59.533 回答
-1

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

于 2013-01-02T13:25:31.700 回答