2013-07-15 91 views
0

不知道這是問這個問題的地方,但我正在嘗試連接到一個我可以完全訪問的服務器。我可以從網上登錄到phpMyAdmin,但是當我嘗試從C#連接到它時,它不起作用。這表明特別是以下錯誤:如何連接到需要SSH的遠程Mysql服務器?

無法連接到任何指定的MySQL主機

這裏的精選連接字符串我用:

string mycon = "server=someIP;port=3306;uid=user;pwd=pwd;database=mydb;Convert Zero Datetime=True"; 

我認爲這是因爲服務器需要SSH。有什麼辦法可以禁用連接的SSH要求嗎?

+0

你檢查,以確保防火牆沒有阻止端口3306?訪問http://www.yougetsignal.com/tools/open-ports/並確保該端口向公衆開放。 – PoweredByOrange

+0

嗯,我不明白。當我測試服務器和IP時,它顯示端口已關閉。那麼我怎麼能通過phpmyadmin訪問它呢? – rtuner

+0

哦,等一下,服務器實際上是在一個Intranet上,所以它不會從在線服務器上看到。我可以手動檢查嗎?在測試偵聽端口時,我可以看到端口,但我不確定它是否打開... etc – rtuner

回答

1

如果端口3306已關閉,您將無法從遠程主機進行連接。 PHPmyadmin的工作原理是因爲它運行在與mysql服務器相同的機器上(我假設),所以它不能從遠程主機連接。您需要打開3306端口並將mysql配置爲偵聽端口3306,或者您提到您擁有ssh,這會打開另一個選項。

如果您無法向公衆開放3306,您可以創建一個ssh隧道到服務器,將mysql服務器上的3306轉發到本地計算機上的某個端口(如3307),然後將C#配置爲連接到該本地端口。

string mycon = "server=localhost;port=3307;uid=user;pwd=pwd;database=mydb;Convert Zero Datetime=True"; 

下面是如何使用putty轉發端口的示例。 http://www.cs.uu.nl/technical/services/ssh/putty/puttyfw.html

另外,檢查ip上的開放端口最簡單的方法是像nmap這樣的端口掃描器。我假設你在使用C#之後在windows上。 有Windows圖形用戶界面的客戶端瀏覽:http://nmap.org/zenmap/

0

我終於通過在my.cnf改變mysql的配置解決了這個問題

它早先:

綁定地址127.0.0.1 =

,我把它改成

綁定地址= 0.0.0.0

重啓MySQL服務,一切都很好:)

相關問題