我有一个由paralell plesk托管的MySQL数据库,我正在尝试使用Visual Basic进行连接。目前每次我尝试连接时都会出现以下错误
使用方法'mysql_native_password'对用户'myuser'的主机'xx.xx.xxx.xxx'进行身份验证失败,并显示消息:用户'root'的访问被拒绝@'我的公共IP地址'(使用密码:否)< / p>
这是我的代码:
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 :(得分: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(user@xxx.xxx.xxx.xxx
)