2014-03-25 136 views
1

我第一次使用SSH隧道,所以我想了解如何配置它。如何使用SSH隧道連接到遠程MySQL服務器?

我有一個遠程Linux服務器,它承載了我試圖連接的MySQL數據庫。爲了直接通過僅能識別本地數據庫的軟件訪問MySQL數據庫,我想SSH隧道是設置訪問的正確方法,對嗎?

現在,我試圖在我的「家」計算機上設置隧道,該計算機正在運行試圖訪問MySQL數據庫的軟件。我的第一個問題是這是反向隧道還是正常隧道?其次,是本地隧道還是遠程隧道?

最後,從我的理解,我的代碼應該看起來像

ssh -L 8080:mylinuxserver.mycompany.com:22 [email protected] 

這是正確的嗎?我的源端口是'22',因爲我使用SSH並且是我的目標端口8080(或者是否有更合適的東西)?

當我嘗試使用上面的代碼時,我能夠使用我的密碼登錄(因爲我的密鑰已經在MyLinuxServer中),但是當我ping localhost:8080時,它找不到主機。

我在做什麼錯?

回答

4

我有承載MySQL數據庫的遠程Linux服務器,我試圖連接到

該命令應該是:

ssh -L 8080:localhost:3306 [email protected] 

其中:

  1. :是你的工作站
  2. 本地主機在興田本地端口:對應mylinuxserver.mycompany.com
  3. :MySQL的端口上面localhost

然後連接(從工作站)到MySQL爲:

mysql -h 127.0.0.1 --port=8080 

此外,ping localhost:8080是錯誤的。 Ping不能這樣工作。

+0

在我的情況下,終端接受的端口爲mysql -h 127.0.0.1 -u root -p -P 8080; – Ritesh

-1

試試這個:

ssh -f [email protected] -L 3307:mysql1.example.com:3306 -N 

接下來,訪問您試圖連接MySQL來:

mysql -h 127.0.0.1 -P 3307 
+0

它正確執行,但我仍然無法成功地ping它,因爲它找不到主機。與我在我的問題中提出的代碼一樣,問題也是如此。 – Dezzie

+0

當我嘗試運行mysql命令時,它顯示找不到命令。 – Dezzie

相關問題