有時候比如一些雲主機,沒有開放3306端口,這里可以用ssh隧道來連接數據庫,更加安全
注意點:
1.本地ssh可以登錄遠程服務器,(密碼或者秘鑰)
2.遠程數據庫需要賦權限給隧道端的ip
命令:
ssh -NCPf root@111.111.111.111 -L 3388:192.168.1.1:3306
參數:
-C 使用壓縮功能,是可選的,加快速度。
-P 用一個非特權端口進行出去的連接。
-f 一旦SSH完成認證並建立port forwarding,則轉入后台運行。
-N 不執行遠程命令。該參數在只打開轉發端口時很有用(V2版本SSH支持)
這里的root@111.111.111.111是連接遠程服務器的用戶名和IP
-L 3388:192.168.1.1:3306 這里表示建立的隧道,3388是本機端口,通過3388和遠程服務器建立隧道,192.168.1.1是內網ip,可以用127.0.0.1,當然也可以用外網ip,這里要注意數據庫要給這個ip賦權,因為隧道連接實際上就是數據庫連接的這個ip ,后面的是遠程數據庫的端口
這個命令在本地運行
運行這個命令會在本地機器上開啟3388端口
ss和nestat 和lsof可以看到,開啟了127.0.0.1:3388
連接:
本地裝好mysql客戶端
mysql -u用戶名 -P 3388 -h127.0.0.1 -p密碼
恭喜你登陸了