laravel使用SSH 隧道连接远程数据库

1、创建SSH隧道

 ssh -i ./id_rsa -N -L 3306:localhost:3306 -p 8848 root@192.161.1.1

 对上述代码的解释:
 命令是一个SSH隧道命令,用于将本地端口3306转发到远程服务器上的3306端口。以下是命令的详细解释:

ssh: 调用SSH客户端。
-i ./id_rsa: 指定用于身份验证的私钥文件。
-N: 不执行远程命令,仅用于端口转发。
-L 3306:localhost:3306: 将本地端口3306转发到远程服务器上的localhost:3306-p 8848: 指定SSH连接的远程端口为8848。
root@192.168.1.1: 连接到远程服务器的用户和IP地址。
这个命令通常用于安全地访问远程服务器上的数据库或其他服务。例如,如果你有一个运行在远程服务器上的MySQL数据库,你可以使用这个命令在本地计算机上通过3306端口访问它。

2、修改Laravel的.env配置文件

DB_CONNECTION=mysql
DB_HOST=127.0.0.1 //本地ip
DB_PORT=3306 //创建ssh隧道时转发的端口,不建议用3306,建议做对应的调整
DB_DATABASE=ssh_db_name //远程数据库名
DB_USERNAME=ssh_username //远程数据库账号
DB_PASSWORD=ssh_pwd //远程数据库密码

3、实现前后效果对比

laravel使用SSH 隧道连接远程数据库

laravel使用SSH 隧道连接远程数据库

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 4

大佬

6个月前 评论
wjxx (楼主) 6个月前

我本地DBeaver客户端用ssh隧道连接远程数据库. 现在知道了还可以建立隧道给本地代码用.

6个月前 评论
wjxx (楼主) 6个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!