使用方法:
ssh -p 搭建隧道的端口 -fNL 本地端口:远程ip:远程端口号 搭建隧道的账号@搭建隧道的ip
可以增加参数-v,输出更多的信息
ssh -p 搭建隧道的端口 -fNL 本地端口:远程ip:远程端口号 -v 搭建隧道的账号@搭建隧道的ip
有时候,测试环境的数据库不允许个人电脑A直接访问。但是个人电脑能访问电脑B(可能是内网测试服务器),电脑B能访问数据库。为了在本地能更方便的开发,可以通过ssh的方式访问数据库。
也许很多人通过Navicat ssh方式访问过数据库(不会的自行查资料,先了解ssh连接再往下看),但是不会本地代码直接访问数据库,导致每次修改代码,都要上传到服务器重新编译,效率非常低。
本地ssh访问数据库示例:
ssh -p 3700 -fNL 3307:testdb.xx.us-east-1.rds.amazonaws.com:3306 -v user@10.10.10.10
解释: 3700是电脑B开放给电脑A访问的端口号
-f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。
-N :不执行脚本或命令,通常与-f连用。
-L :本地转发 3307是本地短口号,也是后面代码或者mysql命令行使用的端口号 testdb.xx.us-east-1.rds.amazonaws.com 数据库的地址 3306 数据库的短口号
-v 为了查看更多信息,可以省略 user 电脑B提供给电脑A的用户名
10.10.10.10 电脑B的地址
执行上面命令后,就可以使用本地mysql命令行进行连接了。
命令行:mysql -h hostname -P port -u username -p
如果出现如下错误:
\PATH\MySQL5.7.26\bin>mysql -h 127.0.0.1 -P 3307 -u db_user -p
Enter password: *********
ERROR 2026 (HY000): SSL connection error: unknown error number
尝试添加:–ssl-mode=DISABLED 可以解决。
mysql --ssl-mode=DISABLED -h 127.0.0.1 -P 3307 -u db_user -p
亲测,在mysql客户端连接需要加上–ssl-mode=DISABLED,但是在代码中连接不用。直接把代码的host地址改为本地127.0.0.1,端口号改为本地端口号(上面的3307),用户名和密码按照原来数据库的用户名和密码即可。