1

任何人都知道如何将 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 
4

2 回答 2

0

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

  • 这通常是一种缓慢的做事方式
  • MySQL 有线协议不安全。您应该通过 SSL 或 VPN 执行此操作。
  • 将服务器隐藏在某个随机端口号较高的位置并没有什么坏处。这并不能保护您,但通常可以防止成群的机器人不断地用默认密码敲打您的服务器。如果您只允许 MySQL 在您的 VPN 接口上侦听(推荐),那么这无关紧要。
于 2013-04-26T20:22:11.900 回答
0

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

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

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

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

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

MySQL 从其他主机连接的权限

在 MySQL 中,用户默认只有从 localhost 连接的权限。您可能需要添加权限才能从其他主机连接到特定用户。

阅读:从任何 IP 地址授予对 MySQL 数据库的远程访问权限

于 2013-04-26T20:31:33.837 回答