Firebird: 无法完成对主机的网络请求

8
我正在尝试连接到远程的 Firebird 数据库 "test"(别名已添加)。它不是嵌入式服务器,安装在 IP 地址为 192.168.1.147 的 VM 上。
这是我的连接字符串:
User=sysdba;Password=masterkey;Database=test;DataSource=192.168.1.147
但是我遇到了一个错误:
FirebirdSql.Data.FirebirdClient.FbException (0x80004005): 无法完成对主机“192.168.1.147”的网络请求。 ---> 无法完成对主机“192.168.1.147”的网络请求。
我已经做了一些研究,但还没有头绪。需要一些帮助。谢谢。
我的 IP 地址是 192.168.2.108,我可以成功地 ping 该服务器的 IP。
4个回答

15

请确保:

  1. Firebird正在运行
  2. Firebird在指定的IP上侦听端口3050(或0.0.0.0)
  3. 您的防火墙允许访问3050端口
  4. 您使用了正确的主机名

1
是的。端口不知何故被更改为3051了。tx - Colt
你好,我遇到了这个问题,我按照你提供的1、2、3步骤进行了检查,但我仍然无法连接到Firebird。 无法完成对主机“localhost”的网络请求。 在c:\ Users \ fer \ Desktop \ firebird-NETProvider-f021ee8d2569dbd22cabbe3a3f1e656fc7e6672f \ NETProvider \ src \ FirebirdSql.Data.FirebirdClient \ FirebirdClient \ FbConnectionInternal.cs的FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()中:第196行 在c:\ Users \ fer \ Desktop \ firebird-NETProvider-f021ee8d2569dbd22cabbe3a3f1e656fc7e6672f \ NETProvider \ src \ FirebirdSql.Data.FirebirdClient \ FbConnection.Open()中的FirebirdSql.Data.FirebirdClient.FbConnection。 - Luke Le
我在卸载卡巴斯基之后遇到了问题。你能帮我吗? - Luke Le
@LukeLe请检查默认的Windows防火墙是否允许Firebird在3050端口接受传入连接。如果没有,请添加它。否则,我建议您将此问题提交到firebird-support邮件列表。 - Mark Rotteveel
@MarkRotteveel 感谢您的回复。我在 WF 中进行了检查,它是允许连接的。但我仍然无法连接到数据库。 我还使用 IBExpert 连接到数据库,当我选择“服务器/协议”为“本地,默认值”时,它可以正常工作,但是当我选择“服务器/协议”为“远程,TCP/IP”,并且 localhost 和端口 fbserver 正在运行时,连接失败! 这个问题出现在安装和卸载 Kaspersky internet security 2017 后。 - Luke Le

7

对于Linux系统,Firebird端口默认是关闭的。您需要修改/etc/firebird/2.5/firebird.conf中的RemoteBindAddress

RemoteBindAddress = localhost

to

RemoteBindAddress =

并重新启动服务。

2

请确保您在虚拟机的防火墙中排除了TCP端口3050


0

好的。我认为你与Firebird的连接失败是因为Firebird客户端通过名称查找网络服务文件,而在服务文件中找不到gds_db。 如果您的连接字符串使用IP引用主机,则客户端可能无法识别它,因为它使用gethostbyname()而不是IP 手动将其包含在文件中,您应该没问题。 C:\ windows \ system32 \ drivers \ etc \ services


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接