2012-07-20 72 views
0

我有一個c#web服務運行在我的MySQL數據庫的不同網絡空間。我想將它們鏈接在一起,所以有以下c#代碼。c#連接到不同的服務器上的mysql

  server = "www.***.com"; 
     database = "MyDataBase"; 
     uid = "admin"; 
     password = "Password"; 
     string connectionString; 
     connectionString = "SERVER=" + server + ";" + "DATABASE=" + 
     database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";"; 

     connection = new MySqlConnection(connectionString); 
     try 
     { 
      connection.Open(); 
     } 
     catch (MySql.Data.MySqlClient.MySqlException ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
在捕獲異常即時得到以下錯誤

「訪問被拒絕的用戶‘admin'@'cpc13-ches4-2-0-cust195.9-1.cable.virginmedia.com’

(使用密碼:是)「

即時只在當地運行它,所以我不知道這是幫助還是阻礙。

+1

我建議您刪除Virgin Media的客戶信息... – 2012-07-20 15:25:47

回答

2

檢查您的MySQL用戶設置,確保admin帳戶被允許從localhost以外的機器登錄。

您可以驗證哪些主機允許用戶從這樣的連接:

select user, host from mysql.user 

如果admin用戶只能從本地主機連接,那麼你要麼需要設置權限爲新主機您正在連接或使用%的所有主機連接。

你可以看到哪些權限admin對這樣的本地主機:

show grants for 'admin'@'localhost' 

然後你可以複製/粘貼這些贊助更改主機部分授予另一臺主機上相同的權限。

0

你必須授予管理員@中共接入.......

登錄到MySQL並執行以下操作:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' 
->  WITH GRANT OPTION; 

還是第一次檢查與此命令,首先看到的私法。

SHOW GRANTS FOR 'admin'@'localhost'; 

,然後再試一次......

0

確保你的MySQL服務器允許遠程連接。 也許你的連接字符串並不是確切的一個。檢查連接字符串在這裏:http://connectionstrings.com/mysql

0

你想去:

Security > Logins > Click your account > Properties > User Mappings

,並確保您有正確的權限

0
  • 下載並安裝 「MySQL的ODBC驅動程序3.51」 在http://dev.mysql.com/downloads/connector/odbc/3.51.html
  • 使用IP地址而不是www。 * .COM
  • 需要開放3306端口上的服務器

     string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + 
               "SERVER=112.***.**.***;" + 
               "DATABASE=dbname;" + 
               "UID=u_name;" + 
               "PASSWORD=u_pass;port=3306;" + 
               "OPTION=3"; 
         OdbcConnection MyConnection = new OdbcConnection(MyConString); 
         MyConnection.Open();