如何将vb.net连接到ONLINE MySQL数据库?

时间:2013-04-26 20:12:12

标签: mysql vb.net winforms

任何人都知道如何将vb.net windows表单应用程序连接到在线/内联网数据库?

我尝试使用localhost,是的它连接但是如果我在主机中使用IP我无法访问数据库。

这是我的联系:

Dim conStr As String = "server=192.168.1.18;Uid=root;Pwd='';Database=hrms"
Dim con As New MySqlConnection(conStr)
Try
    MessageBox.Show("Connecting to mysql database..................")
    con.Open()
    Dim sqlStr As String = "SELECT * FROM accounts"
    Dim cmd As MySqlCommand = New MySqlCommand(sqlStr, con)
    Dim rd As MySqlDataReader = cmd.ExecuteReader
    rd.Read()

    If rd.HasRows Then
        MessageBox.Show(rd(0) & " " & rd(1) & " Naa koi na fetch")
        Exit Sub
    Else
        MessageBox.Show("Could not find something")
        Exit Sub
    End If

    con.Close()
Catch ex As Exception
    MessageBox.Show(ex.Message)
End Try 

2 个答案:

答案 0 :(得分:0)

是的,您可以通过网络连接到MySQL服务器。确保您使用正确的IP地址,并且MySQL实际上正在侦听该接口/端口。另外,检查防火墙。有几点需要注意:

  • 这通常是一种缓慢的做事方式
  • MySQL有线协议安全。您应该通过SSL或VPN执行此操作。
  • 将服务器隐藏在某个随机端口号上并没有什么坏处。这并不能保护你,但通常会让大批机器人不断使用默认密码锤击你的服务器。如果你只允许MySQL在你的VPN接口上监听(推荐),那么这没关系。

答案 1 :(得分:0)

您可能需要熟悉一些事情。

“localhost”与MySQL中的127.0.0.1之间的区别

使用IP地址连接localhost时 - 它通过TCP协议连接。

当您使用“localhost”名称连接localhost时,它将尝试通过共享内存(或Linux下的套接字)进行连接。

在第二种情况下 - 如果您的服务器关闭了“共享内存”,则不会通过“localhost”与localhost连接。您可以在本地服务器上打开该协议,或使用127.0.0.0强制TCP连接。

从其他主机连接的MySQL权限

在MySQL中,默认情况下,用户具有仅从localhost连接的权限。您可能需要添加从其他主机连接到specyfic用户的权限。

阅读本文:grant remote access of MySQL database from any IP address