gpt4 book ai didi

docker - 无法连接到Docker上的Firebird服务器

转载 作者:行者123 更新时间:2023-12-02 18:49:44 25 4
gpt4 key购买 nike

我是macOS用户,并且在使用firebird创建数据库时遇到了奇怪的错误。我看到有一些带有firebird的 jetty 容器运行得很好(我能够创建数据库,执行查询等),但是当我尝试从本地ISQL或razorSQL客户端(通过JDBC)进行连接时,我感到有些奇怪错误,例如“数据库不可用”或“无法打开文件”

我也不确定 ISQL CONNECT 字符串的工作原理,因为我看到的每个站点都有一个不同的站点。

我得到了这个 docker 形象:(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

我的docker-machine 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

当我进入docker容器时,文件在那里:
root@e4212b9f9d16:/databases# pwd
/databases
root@e4212b9f9d16:/databases# ls
test.fdb

另外,我不确定如何检查Firebird服务器是否正在运行(我想这是因为我可以“连接”到容器内的数据库” ..但是Docker容器已经确定并可以运行-telnet成功完成了在ip和port上)

我也尝试使用容器IP(172.17.0.2),但是超时

我最熟悉mysql和SQLite之前从未接触过firebird数据库,并且随着用户获得此数据库,我不得不对其进行模拟,使用虚假数据开发应用程序,然后将其连接到真实的firebird(因此,更改数据库是不可取的)

最佳答案

您的大多数问题是连接字符串,应该是<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)。

关于docker - 无法连接到Docker上的Firebird服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38107028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com