2016-06-29 66 views
0

我是一个macOS用户,我得到奇怪的错误只是为了创建一个与firebird数据库。我看到有一些dockbird容器运行良好(我能够创建数据库,执行查询等),但是当我尝试从本地ISQL或razorSQL客户端(通过JDBC)进行连接时,出现了一些奇怪的现象错误,如“不可用的数据库”或“无法打开文件”无法连接到码头上的火鸟服务器

我也不确定如何ISQL CONNECT字符串真的有效,因为我看到的每个站点都是不同的。

我得到这个泊坞窗图像:(https://hub.docker.com/r/jacobalberty/firebird/

我创造了我的容器是这样的:

docker run -d --name firebird -p 3050:3050 -v /data/firebird/databases:/databases jacobalberty/firebird:2.5-ss 

我的码头工人,机器的IP是:

192.168.99.100 

我试图连接像这个:

CONNECT '0.0.0.0:3050://databases/test.fdb' user 'SYSDBA' password 'masterkey'; 
unavailable database 

而且也是这样:

CONNECT '192.168.99.100:/databases/test.fdb' user 'SYSDBA' password 'masterkey'; 
connection rejected by remote interface 


CONNECT '192.168.99.100:3050:/databases/test.fdb' user 'SYSDBA' password 'masterkey'; 
Statement failed, SQLSTATE = 08001 
unavailable database 

当我进入泊坞窗容器,该文件是存在的:

[email protected]:/databases# pwd 
/databases 
[email protected]:/databases# ls 
test.fdb 

而且,我不知道如何检查火鸟服务器正在运行(我想这是因为我可以'连接'到容器内的数据库'..但码头集装箱已经正常运行 - 在IP和端口上做了一个成功的telnet)

我也尝试过使用容器IP(172.17.0.2),但我有一个超时

我最熟悉的mysql和SQLite从未接触过firebird数据库,并且当用户得到这个数据库时,我必须嘲笑它​​,使用假数据开发一个应用程序,然后将它连接到真正的firebird(所以更改数据库是不是一种选择)

+0

您在该Docker镜像中使用了哪种Firebird版本,以及您在自己的机器上使用了哪种Firebird版本的ISQL/libfbclient? –

回答

1

所以,关于“创建火鸟服务器的标准文件没有提及,但你firebird.conf,可变RemoteBindAddress必须是空

文件:

/etc/firebird/2.5/firebird.conf 

线改变:

RemoteBindAddress = 
#RemoteBindAddress = localhost 

感谢所有

0

为了找出如果服务器在运行,使用:

docker ps 

为了弄清楚,如果服务器实际上启动,或在启动时出错了,启动容器不-d并在运行时查看日志消息:

docker run --name firebird -p 3050:3050 -v /data/firebird/databases:/databases jacobalberty/firebird:2.5-ss 
+0

码头集装箱正在运行(否则我无法进入集装箱并连接到它内部的数据库) –

+0

您可以telnet到数据库应该暴露的端口吗? –

+0

Yeap,通过telnet连接 –

2

你的大多数问题都是您的连接字符串,它应该是<host>/<port>:<database-path-or-alias>,其中/<port>离开将默认端口3050

这说明了除了

CONNECT '192.168.99.100:/databases/test.fdb' user 'SYSDBA' password 'masterkey'; 
connection rejected by remote interface 

您的所有问题由于该连接字符串是有效的。

此错误表示您能够连接到服务器,但连接被拒绝。例如,这可能会在您使用Firebird 3时发生,但使用Firebird 2进行连接。5 ISQL/fbclient库,并没有放宽Firebird 3的安全设置(请参阅Firebird 3发行说明中的​​Legacy Authentication)。