2011-10-05 121 views
2

我想連接到我的服務器上的MySQL數據庫。下面是我使用的連接我的小樣本:無法連接到遠程MySQL數據庫

 

using System; 
using System.Data; 
using MySql.Data.MySqlClient; 

namespace MySqlTest 
{ 
    class MainClass 
    { 
     public static void Main (string[] args) 
     { 
     string connectionString = 
      "Server=12.34.546.213;" + 
      "Database=Test;" + 
      "UID=root;" + 
      "Password=password;"; 
     IDbConnection dbcon; 
     dbcon = new MySqlConnection(connectionString); 
     dbcon.Open(); 
 

我收到以下錯誤,當我嘗試執行此代碼:

 

Unhandled Exception: MySql.Data.MySqlClient.MySqlException: Access denied for us 
er 'root'@'12.34.546.213' (using password: YES) 
    at MySql.Data.MySqlClient.MySqlStream.ReadPacket() 
    at MySql.Data.MySqlClient.NativeDriver.AuthenticateNew() 
    at MySql.Data.MySqlClient.NativeDriver.Authenticate() 
    at MySql.Data.MySqlClient.NativeDriver.Open() 
    at MySql.Data.MySqlClient.Driver.Open() 
    at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings 
) 
    at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection() 
    at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() 
    at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() 
    at MySql.Data.MySqlClient.MySqlPool.GetConnection() 
    at MySql.Data.MySqlClient.MySqlConnection.Open() 
    at MySqlTest.MainClass.Main(String[] args) in c:\Users\dvargo\Documents\Proje 
cts\MySqlTest\MySqlTest\Main.cs:line 18 
Press any key to continue . . . 

任何想法,這可能是爲什麼?我如何給root權限以便我可以訪問它?

+1

您是否允許使用MYSQL實例上的root帳戶進行遠程訪問? –

+0

在my.cnf文件中,我更改了'#bind-address = 123.34.567.89'這是我的服務器的IP地址。除此之外,我還需要做些什麼? – user489041

回答

3

檢查mysql配置,默認情況下root用戶只能從localhost連接。在DB

CREATE USER 'username'@'%' IDENTIFIED BY 'password'; 

授予權限:

http://dev.mysql.com/doc/refman/5.1/en/connection-access.html

+2

默認情況下,只能從本地主機訪問根帳戶。出於安全原因,您應該使用'CREATE USER'和'GRANT'來創建一個新用戶,並只給予它所需的權限。從C#應用程序遠程訪問root是一個很大的安全漏洞。 – Polynomial

+0

你知道什麼需要在配置文件中設置,以允許遠程連接? – user489041

7

來自任何主機創建用戶訪問(或只從主機從中你會被連接)

GRANT ALL PRIVILEGES ON `sometable` . * TO 'username'@'%' WITH GRANT OPTION ; 
0

難道你編輯配置文件以允許遠程訪問?

如果不是,那很可能是您的問題。我不知道關於在這裏發佈鏈接的規則,但在谷歌搜索遠程mysql訪問將提供一些很好的建議。