2013-04-26 66 views
1

任何人有一個想法如何將vb.net窗體窗體應用程序連接到在線/ intranet數據庫?如何將vb.net連接到ONLINE MySQL數據庫?

我嘗試使用本地主機,是的,它連接,但如果我在主機我使用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 
+0

的可能重複:http://stackoverflow.com/questions/2269237/connecting-to-a-online-mysql-database-using-vb-net?rq=1 – Kenneth 2013-04-26 20:14:08

+0

能你回答我的問題,如果我將在我的連接中使用IP地址?我發佈的代碼不正確。你能教我先生嗎? – 2013-04-26 20:15:55

+0

請閱讀其他問題的答案。他們應該涵蓋所有情況。無論如何,我不直接看到你的代碼中的錯誤,它必須是一些基礎設施問題(防火牆,端口,錯誤的IP,錯誤的用戶名,...) – Kenneth 2013-04-26 20:17:33

回答

0

是的,你可以連接到MySQL服務器在網絡上。確保您使用的是正確的IP地址,並且MySQL實際上正在偵聽該接口/端口。另外,請檢查你的防火牆。有幾件事情需要注意:

  • 這是一般的處事
  • MySQL的有線協議是安全緩慢的方式。你應該通過SSL或VPN來做到這一點。
  • 它不會傷害你的服務器隱藏在一些隨機的端口號。這不會保護你,但通常會保持機器人不斷用默認密碼敲擊服務器。如果你只允許MySQL監聽你的VPN接口(推薦),那麼這並不重要。
0

您可能需要熟悉一些東西。在MySQL

當您使用IP地址本地主機連接「本地主機」和127.0.0.1之間

差異 - 它通過TCP協議連接。

當您使用「本地主機」名稱與本地主機連接時,它將嘗試通過共享內存(或Linux下的套接字)進行連接。

在第二種情況下 - 如果您的服務器已關閉「共享內存」,則不會通過「localhost」與localhost連接。您可以在本地服務器上打開該協議,或使用127.0.0.0強制TCP連接。

MySQL的權限,才能從其他主機

在MySQL的用戶默認有權只能從本地主機連接進行連接。您可能需要添加權限才能連接到其他主機的specyfic用戶。

閱讀:grant remote access of MySQL database from any IP address