0

我正在 Visual Basic 2010 中制作一个小型桌面应用程序,我需要建立一个与在线 mysql 服务器数据库的连接,该数据库是在我制作的网站的主机上创建的。

目前我只是想让连接成功,所以我编写了以下代码来尝试这个,但是在调试时我不断收到错误消息:

Imports MySql.Data.MySqlClient

Public Class Form2

Dim serverstring As String = "Server=188.121.42.33;Database=MyDatabase;User Id=MyUser;Password=password"


Private Sub Form2_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    Dim sqlConnection As MySqlConnection = New MySqlConnection
    sqlConnection.ConnectionString = serverstring

    Try
        If sqlConnection.State = ConnectionState.Closed Then
            sqlConnection.Open()
            MsgBox("Sucessfull")
        Else
            sqlConnection.Close()
            MsgBox("Connection failed")
        End If
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
End Sub

End Class

如果有人能给我任何建议或发现我做错了什么,我将非常感激,因为我对这一切都很陌生,这是我提出的第一个应用程序。我在调试时得到的错误是:

Mysql.data.MySqlClient.MySqlException (0x80004005):无法连接到任何指定的 MySQL 主机。

感谢你的宝贵时间。

4

2 回答 2

2

通常发生这种情况是因为主机端不允许所有 IP 都连接到 mysql。尝试在托管端添加 %。如果它不起作用,您需要转到 mysql 并运行此脚本

全部授予。to user@'%' IDENTIFIED BY 'password';

上面的脚本将允许所有 ip 地址访问 mysql,如果它仍然无法工作,这意味着主机提供商防火墙是严格的,我的建议是你需要 VPS。

祝你好运

于 2015-11-22T15:56:16.240 回答
1

“我已经关闭了我的防火墙,但我仍然遇到同样的错误。” 在您和目的地之间进行的过滤比您的个人防火墙要多得多,您无法直接禁用/更改任何一个。

如果您的示例中的服务器 IP 是您尝试连接的,那么它很可能是过滤/防火墙问题,正如 cHao 所提到的。SQL Server 的默认连接端口是 tcp/1433,并且基于对 的快速端口扫描188.121.42.33,该主机不接受 tcp/1433 上的连接:

> nc -vv 188.121.42.33 1433
nc: connect to 188.121.42.33 port 1433 (tcp) failed: Connection timed out

...和...

> nmap -O 188.121.42.33
Starting Nmap 6.25 ( http://nmap.org ) at 2013-09-05 22:01 ric
Nmap scan report for n1nlsmysqladm01.shr.prod.ams1.secureserver.net (188.121.42.33)
Host is up (0.068s latency).
Not shown: 983 filtered ports
PORT     STATE  SERVICE
80/tcp   closed http
113/tcp  closed ident
443/tcp  closed https
1248/tcp open   hermes
1720/tcp open   H.323/Q.931
6000/tcp closed X11
6001/tcp closed X11:1
6002/tcp closed X11:2
6003/tcp closed X11:3
6004/tcp closed X11:4
6005/tcp closed X11:5
6006/tcp closed X11:6
6007/tcp closed X11:7
6009/tcp closed X11:9
6025/tcp closed x11
6059/tcp closed X11:59
7001/tcp closed afs3-callback

简短的回答,您将无法根据源/目标之间当前允许的流量进行连接。要使其正常工作,您可能需要与该主机建立某种 VPN 连接,tcp/1433 流量可以通过该连接流动。

于 2013-09-05T21:06:56.400 回答