繁体   English   中英

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

[英]Connect to remote MySQL database using VB.NET 2010

我的连接字符串如下。

conn.ConnectionString = "Server=192.248.***.***; Port=3036; User id=admin; password=***; Database=abc; Connect Timeout=60;"

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

但我可以使用 PHPMyAdmin 登录。

//192.248.***.***/phpmyadmin

我也可以使用以下方式登录到本地 MySQL 数据库:

    conn.ConnectionString = "server=" & "localhost" & ";" & "user id=" & "admin" & ";" & "password=" & "" & ";" & "database=abc"

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

更新:立即显示 window:

    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

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

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

1) 从 url ( https://dev.mysql.com/downloads/connector/net/ ) 下载 Mysql 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

结束类

表单类代码

公共类 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

结束类

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

8)记下@之后错误消息上的IP地址(那是您的IP)并将其添加到您的域cpanel“远程mysql访问”下图说明了远程mysql访问的样子(它们是相同的,但它们可能会延迟颜色); 不要忘记按“添加主机”按钮。 对于那些使用静态 ip 的人来说,此设置每天都可以使用。在此处输入图片说明

完成以上步骤后看到成功的信息;

在此处输入图片说明

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

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

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

试试这个,它会起作用

con.ConnectionString ="Persist Security Info=False;datasource=site.com;port=3306;username=username;password=password;database=database name"

你必须添加

持久安全

在您的代码中。 访问您的站点服务器的 mysql 数据库。 转到 cpanel > Remote MySQL ,并添加您的 IP 地址

看这张图片 >>> https://www.dropbox.com/s/ytsz57spanwdpkz/cpanel.PNG

现在享受:p

MySQL 的默认端口是 3306。如果您可以使用默认设置从 phpmyadmin 连接,这听起来像是一个错字,您应该:

conn.ConnectionString = "Server=192.248.***.***; Port=3306; User id=admin; password=***; Database=abc; Connect Timeout=60;"

此外,默认情况下禁用对 MySQL 服务器的远程访问。 例如,如果您在 Debian Linux 发行版上运行 MySQL,您可能需要执行以下额外步骤以允许从另一台机器访问:

http://www.debianhelp.co.uk/remotemysql.htm

对于 Windows 主机,以下内容可能有用:

http://techmind.net/blog/allow-remote-connections-for-mysql-on-windows.html

我以前有同样的问题,我和它在不同的服务器上运行一样。

尝试从应用程序运行的地方 ping 服务器,看看是否可以连接。 这就是我发现并需要更改防火墙的方式。

首先,您需要将 phpmyadmin 中的文件从本地编辑为全部授予然后创建一个新用户,将主机名设置为 IP 客户端计算机的地址在此处输入图像描述

尝试在 mysql 的 .ini 配置上将端口更改为 3307 然后在 mysql 的 .ini 配置上绑定地址=服务器的 ip 或主机名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM