公司弄了两ucloud和腾讯云服务器,但是这两套服务器是有ssh加密的,我如果想在他们之间访问数据库就必须通过ssh隧道来访问mysql了。
比如ucloud服务器是A,腾讯云是B,那么如果我想在A上连接B的数据库,就要在A上面建立一个到B的ssh隧道来访问。
加入B的地址是111.222.333.444 ssh端口是22(默认是22)用户名是root, 我ssh到B之后要访问它本地数据库,所以mysql的服务器地址是127.0.0.1,端口是3306,我打算把这个ssh绑定到我本地的3307端口。
命令是这样的:ssh -fN -L3307:127.0.0.1:3306 -p22 root@111.222.333.444
然后等一下会让你输入B服务器的密码。输入之后就可以在A上这样访问B的本地数据库了:mysql -h127.0.0.1 -P3307 -uusername -ppassword。
username, password分别为B的本地数据库账号密码。
如果想连B的同级服务器,那么将127.0.0.1改为另一台的内网IP即可。
其中ssh的语法是这样的:
ssh -fN -L(要绑定到的本地端口):(目标服务器的Host):(目标服务器上要访问的端口号) -p(中转服务器的端口,默认为22) (中转服务器的账户):(中转服务器的Host)
这样一来我们只要连接绑定的本地端口就等于连上了目标服务器上的指定端口
这里的目标服务器是相对于中转服务器来说的,所以127.0.0.1就相当于中转服务器自身