使用VB.NET 2010连接到远程MySQL数据库

nir*_*aka 2 mysql vb.net

我的连接字符串如下。

conn.ConnectionString = "Server=192.248.***.***; Port=3036; User id=admin; password=***; Database=abc; Connect Timeout=60;"
Run Code Online (Sandbox Code Playgroud)

但它返回错误“连接到数据库时出错:无法连接到任何指定的 MySQL 主机。”

但我可以使用 PHPMyAdmin 登录。

//192.248.***.***/phpmyadmin
Run Code Online (Sandbox Code Playgroud)

我还可以使用以下命令登录本地 MySQL 数据库:

    conn.ConnectionString = "server=" & "localhost" & ";" & "user id=" & "admin" & ";" & "password=" & "" & ";" & "database=abc"
Run Code Online (Sandbox Code Playgroud)

这段代码有什么问题。我想连接到远程数据库,因为这是系统的要求。请提供任何帮助。

更新: 在立即窗口中显示:

    PassbookPrinter.vshost.exe Error: 0 : Unable to connect to any of the specified MySQL hosts.
A first chance exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll
Run Code Online (Sandbox Code Playgroud)

Sim*_*mbo 5

使用 VB.Net 连接到远程 MySQL 数据库

将vb.net连接到远程MySql数据库;无论您使用什么版本的 VB.Net,只需执行以下步骤即可。

1) 从 URL 下载 Mysql Connector/Net ( https://dev.mysql.com/downloads/connector/net/ )

2)安装连接器;默认情况下,连接器将安装在我安装的版本的路径(C:\ Program Files \ MySQL \ Connector Net 6.9.6)中。

3) 打开VB.Net IDE并启动新项目。

4) 添加“Mysql.Data.dll”作为项目的引用,您可以在路径(C:\Program Files\MySQL\Connector Net 6.9.6\Assemblies\v4.5)中找到它;

5) 准备好您的连接表格,如图所示; 在此输入图像描述

6) 创建名为“Database”的类并写入以下代码。

数据库类代码

导入 MySql.Data.MySqlClient

公共类数据库

Private _connection As New MySqlConnection
Private _errormessge As String
Private _servername As String
Private _databasename As String
Private _userid As String
Private _password As String

Public WriteOnly Property ServerName() As String
    Set(ByVal value As String)
        _servername = value
    End Set
End Property

Public WriteOnly Property DatabaseName() As String
    Set(ByVal value As String)
        _databasename = value
    End Set
End Property

Public WriteOnly Property UserID() As String
    Set(ByVal value As String)
        _userid = value
    End Set
End Property

Public WriteOnly Property Password() As String
    Set(ByVal value As String)
        _password = value
    End Set
End Property

Public ReadOnly Property ErrorMessage() As String
    Get
        Return _errormessge
    End Get
End Property

Public Function Connection() As Boolean
    Try
        _connection.ConnectionString = "Server=" & _servername & ";Port=3306;Database=" & _databasename & ";User ID=" & _userid & ";Password=" & _password & ""
        _connection.Open()
        If _connection.State = ConnectionState.Open Then
            _connection.Close()
            Return True
        End If
    Catch ex As Exception
        _errormessge = ex.Message
        Return False
    End Try
End Function
Run Code Online (Sandbox Code Playgroud)

结束课程

表格类别代码

Public Class Frm_Main Private Sub btn_connect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 处理 btn_connect.Click

'对象声明和实例化

暗淡数据作为新数据库

    With data
        'Assing the object property values
        .ServerName = txt_server.Text
        .DatabaseName = txt_database.Text
        .UserID = txt_uid.Text
        .Password = txt_pwd.Text

        'Connection testing
        If .Connection Then
            MessageBox.Show("Database Conneted.")
        Else
            MessageBox.Show(.ErrorMessage)
        End If
    End With
End Sub

Private Sub btn_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_exit.Click
    Close()
End Sub
Run Code Online (Sandbox Code Playgroud)

结束课程

7)运行项目并尝试连接;如果连接成功那么你的运气好;如果连接不成功并出现以下错误消息,请不要继续阅读更多内容; 在此输入图像描述

8)记下@后面的错误消息中的IP地址(那就是你的IP)并将其添加到你的域cpanel“远程mysql访问”下图说明了远程mysql访问的样子(它们是相同的,但颜色可能有所不同) );不要忘记按“添加主机”按钮。对于静态 IP 的用户来说,此设置可以日常使用。 在此输入图像描述

完成上述步骤后看到成功的消息;

在此输入图像描述

但是,如果错误消息仍然存在,请尝试将密码文本留空,然后再次连接(如果远程数据库中没有密码);如果错误再次出现,除了 YES 更改为 NO 之外,那么您必须检查您是否在 DHCP 中;

9) 如果您使用 DHCP,这意味着 IP 在每个新的互联网连接中都会发生变化。如果您使用调制解调器,则可能您使用的是 DHCP。如果您使用动态 ip,则检查 ip 的 4 个块中发生了什么变化。如果第一次连接中第一个ip是197.250.3.201,下一个ip是197.250.60.70,下一个ip是197.250.80.24;您必须在 cpanel 访问主机中添加 197.250.% 才能使连接稳定。 在此输入图像描述

10) 注意:随着百分号(通配符)流向 IP 地址的左侧,安全之门打开得越多。出现新错误时,请联系您的域名提供商,该域名中可能存在其他一些安全问题。谢谢!