這個問題之前已經被問過了,但是他們的答案並沒有幫助我。將.NET應用程序連接到MySQL
我不是一個Web開發人員,我以前沒有使用過MySQL。我需要在線數據庫只是爲了一個簡單的任務,現在並不重要。所以,我想將我的VB.NET應用程序連接到mySQL。
我正在使用免費託管https://host-ed.net/,這使我只能創建一個對我來說足夠的MySQL數據庫。他們向我提供了cPanel,我在其中創建了名爲「db_clients」的mySql數據庫。之後,我創建了2個用戶,一個用於我的客戶「db_client」,另一個用於我(所有者)「db_owner」。
db_client只有privilage做「SELECT」
的db_owner已privilage盡一切與數據庫
基本上,我會給我的客戶應用程序將只查詢在線數據庫,並檢查如果一列包含真或假。所以,從客戶端應用程序我想連接到與MySQL數據庫Uid=db_client
。
我已經下載並導入了.NET的MySQL連接器。我現在遇到的麻煩是遠程連接到實際的數據庫。即使使用「localhost」,我也無法訪問數據庫。 我使用phpMyAdmin(工具)來自定義數據庫。你能告訴我,我應該怎樣搜索,在什麼地方搜索以找到鏈接字符串中參數Server
的正確值。
我已經找到的是:在phpMyAdmin的網站,我去首頁 - >選擇選項卡的「變量」 - >在搜索欄中鍵入「主機名」和它返回f5.host-ed.me。 之後,我打開了CMD,然後ping了那個主機並獲得了一個IP。接下來我應該做什麼?
這是我目前的VB.NET代碼:
Imports MySql.Data.MySqlClient
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim conn As New MySqlConnection
Dim myConString As String
myConString = "Server=46.105.118.169; Port=3306; Database=db_clients; Uid=db_client; Pwd=somepass; Charset=latin1;"
Try
conn.ConnectionString = myConString
conn.Open()
Debug.Print("conn successfully opened")
conn.Close()
Catch ex As MySqlException
Select Case ex.Number
Case 0
MessageBox.Show("cannot connect to server. Contact admin!")
Case 1045
MessageBox.Show("Invalid username/password!")
End Select
MessageBox.Show(ex.Message)
End Try
End Sub
End Class
這是結果我得到的,當我按下按鈕:
錯誤:1042 SQLSTATE:08S01(ER_BAD_HOST_ERROR )
消息:無法獲取您的地址的主機名稱
我是否需要授予訪問特定IP以訪問我的數據庫? 如果答案是肯定的,那麼是否有解決方法?我不想將IP手動添加到白名單。
您可能需要將您嘗試連接的IP地址列入白名單。 –