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

holgip5t  于 2022-11-17  发布在  .NET
关注(0)|答案(2)|浏览(221)

有人知道如何将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
c6ubokkw

c6ubokkw1#

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

  • 这通常是一种缓慢的做事方式
  • MySQL有线协议安全。您应该通过SSL或VPN执行此操作。
  • 把你的服务器隐藏在某个随机的端口号上并没有什么坏处。这并不能保护你,但是通常可以防止成群的机器人不断地用默认密码攻击你的服务器。如果你只允许MySQL监听你的VPN接口(推荐),那么这并不重要。
mdfafbf1

mdfafbf12#

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

MySQL中“localhost”与www.example.com之间的差异 127.0.0.1

当您使用IP地址与localhost连接时-它通过TCP协议连接。
当您使用“localhost”名称与localhost连接时-它将尝试通过共享内存(或Linux下的套接字)连接。
在第二种情况下-如果您的服务器关闭了“共享内存”,您将无法通过“localhost”连接到localhost。您可以在本地服务器上打开该协议,或者使用127.0.0.0强制TCP连接。

从其他主机连接的MySQL权限

在MySQL中,默认情况下,用户仅具有从本地主机连接的权限。您可能需要添加从其他主机连接到特定用户的权限。
请阅读:grant remote access of MySQL database from any IP address

相关问题