2015-08-09 32 views
0

我下面的MySQL連接代碼是'正在捕獲'這個錯誤:「無法連接到任何指定的MySQL主機。」無法連接到我的Linux服務器MySQL DB

我的數據庫在我的linux網站上,並且使用%啓用遠程訪問,因此任何人都可以訪問數據庫。

我的代碼是.NET C#,我有一個winform。

 string server = "http://www.mywebite.net"; 
     string database = "mywebsite_app"; 
     string uid = "admin"; 
     string password = "Password"; 
     string connectionString; 
     connectionString = "SERVER=" + server + ";" + "DATABASE=" + 
     database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";"; 
     MySqlConnection dbConn; 
     try 
     { 
      dbConn = new MySqlConnection(connectionString); 
      dbConn.Open(); 
      if (dbConn.State.ToString() != "Open") 
      { 
       this.Text = "could not open database connection"; 
      } 
      else 
      { 
       this.Text = "database connection opened"; 
      } 
     } 
     catch (Exception ex) // catch on general exceptions, not specific 
     { 
      this.Text = ex.Message; 
     } 

感謝您的幫助......

+0

數據庫位於Windows機器上,因此Windows必須允許遠程訪問PC。因此,在Windows用戶帳戶中,您必須創建一個允許遠程訪問的組。我會從遠程終端會話開始。 – jdweng

+0

描述運行mysql的服務器的位置和詳細信息 – Drew

+0

檢查防火牆問題:必須爲MySQL端口設置異常。 – Graffito

回答

0

如果你的MySQL數據庫是在遠程主機,那麼你平時的運氣了嘗試連接到該數據庫遠程。 託管服務提供商通常阻止遠程mysql訪問。

嘗試使用ssh-tunneling。 下載膩子 http://www.chiark.greenend.org.uk/~sgtatham/putty/

打開命令行,並從安裝目錄

putty [email protected]_mysqlhost -L 3306:localhost:3306 

執行膩子或者你可以使用GUI,填寫您的MySQL的遠程地址,但不開放的連接呢。

轉到ssh隧道,添加新的轉發端口3306,並將目標作爲localhost:3306。

作爲目的地爲什麼是本地主機,這是因爲目的地是ssh會話看到的。因爲您已經在您的ssh會話中連接到遠程服務器,因此mysql主機是本地的。

這也可能是一個dmz的設置。 您可以使用putty創建一個dmz網關,以便通過dmz網絡內的任何計算機進行隧道傳輸。但網關後面的計算機不會公開暴露於互聯網。

不要忘記klik添加按鈕,以確保配置添加到隧道列表。

打開連接,並使用你的密碼(SSH用戶和密碼,通常是一樣的虛擬主機控制面板的用戶和密碼

現在,而不是連接到遠程MySQL,你可以連接到MySQL低谷本地主機。它會通過膩子通過隧道傳輸到你的遠程MySQL。

先嚐試使用MySQL管理工具連接。測試wheter或不連接成功。

方式SSH隧道工程幾乎是一樣的VPN,從用戶查看。 但沒有設置vpn的麻煩服務器在遠程主機上。

+0

非常感謝那些信息亨利,但這是一個win32應用程序,將作爲共享軟件分發,我的客戶不會去通過所有這些來獲得連接。我希望能夠透明地與任何使用該應用的人建立連接。正如我所說的,我已將'%'添加到我的hostgator站點,以允許從外部遠程訪問數據庫。 – user337447

+0

嗯。在這種情況下,您可以嘗試Web服務方法。這樣它也會克服安全問題。公開暴露mysql總是一個壞主意。 SSH隧道也可以嵌入到win32應用程序中。 Navicat和winscp是 將ssh隧道嵌入到win32應用程序中的好例子。 –