2014-12-29 113 views
1

我有一個由paralell plesk託管的MySQL數據庫,我嘗試使用Visual Basic進行連接。目前,每次我試圖連接我碰到下面的錯誤MySQL登錄錯誤

驗證舉辦「xx.xx.xxx.xxx」用戶「myuser的」使用方法「mysql_native_password」失敗消息:拒絕訪問用戶「根'@' 我的公網IP地址(使用密碼:NO)

這裏是我的代碼:

Imports System.Net 
Imports MySql.Data.MySqlClient 

Public Class SQLControl 
    Private SQLCon = New MySqlConnection("Server=50.62.209.150 ; user id=root ;password=; database=mytestdb;") 
    Private SQLCmd As MySqlCommand 
    Public SQLDA As MySqlDataAdapter 
    Public SQLDS As DataSet 

    Public Function HasConnection() As Boolean 
     Try 
      SQLCon.Open() 
      SQLCon.Close() 
      Return True 
     Catch ex As Exception 
      MessageBox.Show(ex.Message) 
     End Try 
     Return False 
    End Function 

    Public Sub RunQuery(Query As String) 
     Try 
      SQLCon.Open() 

      ' Create Command 
      SQLCmd = New MySqlCommand(Query, SQLCon) 

      ' Fill Dataset 
      SQLDA = New MySqlDataAdapter(SQLCmd) 
      SQLDS = New DataSet 
      SQLDA.Fill(SQLDS) 

      SQLCon.Close() 
     Catch ex As Exception 
      MsgBox(ex.Message) 
      ' Make sure connection is Closed 
      If SQLCon.State = ConnectionState.Open Then SQLCon.Close() 
     End Try 
    End Sub 
+0

你需要允許從你的IP訪問。 看到這個頁面:http://kb.parallels.com/en/1134更多的信息 – psantos

+0

另一件事是,即時通訊使用plesk作爲一個虛擬主機服務,我購買,所以我不知道如何訪問配置文件 –

回答

0

應該是很明顯的:Server=50.62.209.150 ; user id=root ;password=

您正在嘗試使用root用戶且無密碼連接到公共服務器。儘管可以進行配置,但這會允許任何人連接,並且您的服務器將在幾分鐘內被黑客入侵。

只是閱讀關於用戶帳戶管理http://dev.mysql.com/doc/mysql-security-excerpt/5.1/en/user-account-management.html的mysql文檔,你應該能夠解決你的問題。

最好的事情是創建一個有限權限的專用用戶。如果你想從一個固定的IP地址連接,你甚至可以限制用戶到你的IP([email protected]

+0

是的,但我甚至無法登錄「user id = root; password =」它不會讓我發生同樣的錯誤... –

+0

MySQL允許配置基於IP地址的訪問。所以你可以允許'user @ 127.0.0.1'(這是本地主機)和'user @ 192.168.178.10'登錄,但是拒絕任何其他主機的登錄。要允許從任何主機登錄,您必須創建一個用戶user @%'。 在你的設置中,用戶'root'不允許從任何沒有密碼的主機連接,這是一件好事。 –