首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过SSH连接Firebird DB

通过SSH连接Firebird DB
EN

Stack Overflow用户
提问于 2016-12-09 15:25:02
回答 1查看 1.4K关注 0票数 2

我正在使用Laravel和Firebird2.5创建一个应用程序,并希望在DigitalOcean服务器结构上运行它。我们有两个服务器用于应用程序,一个用于web服务(让我们称之为www),另一个用于数据库服务。我成功地安装了Mysql,它运行得很好,但我们都知道Firebird是一个粗糙的设置。这就是我们到目前为止所做的工作:在www和Firebird2.5 SuperServer中安装一个LEMP堆栈。正如我所说的,这些都是数字海洋服务器,都运行Ubuntu14.04。我们在这两个服务器之间创建了一个SSH隧道,其结构如下:

代码语言:javascript
复制
ssh -L 9500:127.0.0.1:3050 username@db_server_ip_address (Private address)

但是,当我们试图在www上与数据库服务器连接应用程序时,出现了以下错误:

不可用数据库

在Laravel配置文件中使用了以下设置:

代码语言:javascript
复制
DB_HOST=127.0.0.1
DB_DATABASE=/home/username/database.gdb
DB_USERNAME=username
DB_PASSWORD=password

凭证是正确的,我们可以在远程(db)服务器上使用它。

你觉得有什么问题吗?是SSH隧道吗?

EN

回答 1

Stack Overflow用户

发布于 2016-12-09 15:39:14

警告:我没有那么多地使用SSH,也从未使用过SSH隧道,我的回答是基于查看文档。

ssh -L 9500:127.0.0.1:3050不像你想的那样做:

指定到本地(客户端)主机上的给定TCP端口或Unix套接字的连接将转发到给定主机和远程端的Unix套接字。这是通过分配套接字来侦听本地端的TCP端口(可选地绑定到指定的bind_address )或Unix套接字来实现的。每当连接到本地端口或套接字时,连接将通过安全通道转发,并从远程计算机连接到主机端口主机端口或Unix remote_socket。

(来自ssh(1))

换句话说,据我所知,正确的命令是:

代码语言:javascript
复制
ssh -L 9500:<ip-address of the Firebird server>:3050

第二个问题似乎是您的Laravel配置没有指定端口,因此它可能仍然试图连接到端口3050 ( Firebird默认端口),而不是您配置的端口9500。我不知道Laravel,但是属性DB_PORT=9500似乎是合乎逻辑的(但是这些属性可能是特定于您自己的部署的,在这种情况下,您可能需要做更多的工作)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41063667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档