ssh隧道远程连接mysql
有时候比如一些云主机,没有开放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密码
恭喜你登陆了