現在串連一個IDC的MySQL伺服器時,由於網路的隔離性,需要ssh到一台跳板機上才能直接存取MySQL,而我想在本地使用MySQLWorkbench這樣的用戶端直接連接到MySQL中。其解決方案是,先用ssh命令建立一個SSH Tunnel,然後MySQLWorkbench只需要串連本地的一個連接埠,即可與對應的遠程MySQL建立串連。
假設跳板機為:192.168.1.1 (它可以與MySQL連通)
MySQL IP為:10.1.0.58 連接埠為:3306
建立SSH Tunnel的命令如下:
代碼如下 |
複製代碼 |
# 建立SSH Tunnel jay@Jay-Air:~ $ssh -f jay@192.168.1.1 -L 2001:10.1.0.58:3306 -N Warning: Permanently added '192.168.1.1' (RSA) to the list of known hosts. jay@192.168.1.1's password: # 查一下在後台啟動並執行ssh進程 jay@Jay-Air:~ $ps -ef | grep 'ssh -f' | grep -v grep 501 9729 1 0 6:10PM ?? 0:00.19 ssh -f jay@192.168.1.1 -L 2001:10.1.0.58:3306 -N |
ssh命令中,-f 表示讓ssh在執行命令(這裡沒有配置執行任何命令)之前進入後台運行狀態; -L 指定本地的一個連接埠(如這裡的2001),它將會被轉寄到遠程IP的一個連接埠(如:10.1.0.58:3306);-N 表示不執行遠程命令,對於只做連接埠轉寄的情境非常有用。
在MySQLWorkbench中,將原來串連MySQL的IP和連接埠,配置為設定的本地SSH Tunnel即可(這裡設定的是:localhost:2001)
另外,參考資料中的第二個,講了如何在putty中設定建立SSH Tunnel。
http://www.revsys.com/writings/quicktips/ssh-tunnel.html
http://davidngos.blogspot.com/2013/06/how-to-use-mysql-workbench-behind.html