【问题标题】:How to connect a database file remotely using Firebird server如何使用 Firebird 服务器远程连接数据库文件
【发布时间】:2018-07-20 07:10:41
【问题描述】:

我创建了一个更新工具,它将 Firebird Server 数据库更新为 SQL Server 数据库,此更新使用 Firebird 数据库备份文件完成并更新到 SQL Server 数据库。我有一个 Firebird 备份文件,其数据截至 2016 年,但客户端的最新数据截至 2018 年。我想访问他的备份文件,为此我创建了一个 Firebird 连接字符串

string ConnectionString = "User ID=sysdba;Password=masterkey;Database=192.168.1.19:50800:D:\\Company Data\\CLINEDB.CMP;DataSource=192.168.1.19;Charset=NONE;Server Type=1;";

我得到这个错误:

无法完成对主机“50800”的网络请求。建立连接失败

如果我使用这个连接字符串

string ConnectionString = "User ID=sysdba;Password=masterkey;Database=192.168.1.19/50800:D:\\Company Data\\CLINEDB.CMP;;DataSource=192.168.1.19;Charset=NONE;Server Type=1;";

无法完成对主机“D”的网络请求。找不到主机

【问题讨论】:

  • "想要访问他的备份文件" - 你不能打开备份文件,你首先必须从这个备份中重新创建一个数据库文件。您使用哪些库连接到远程服务器? Charset=NONE 是潜在危险的设置...尝试DataSource=192.168.1.19:50800DataSource=192.168.1.19/5080 并从Database= 中完全删除服务器部分。看来您让远程 FB 服务器充当代理并尝试代表您连接到下一个服务器,“服务器链接”

标签: c# firebird


【解决方案1】:

你的连接字符串错误:

  1. 您尝试在Database 中指定完整的连接信息,但您需要在DataSourcePortDatabase 中分别指定它们。
  2. 您还错误地尝试使用 Firebird Embedded,而您需要连接到远程服务器。所以,Server Type=1 应该被忽略或被赋予价值0

正确的连接字符串是:

"User ID=sysdba;Password=masterkey;DataSource=192.168.1.19;Port=50800;Database=D:\\Company Data\\CLINEDB.CMP;Charset=NONE;Server Type=0;";

https://www.connectionstrings.com/firebird/

在您的问题中,您说您想连接到 Firebird“备份文件”。这是不可能的,您只能连接到真正的 Firebird 数据库。

【讨论】:

  • 我已经尝试使用给定的连接字符串,我得到了这样的错误“连接被远程接口拒绝”,以及我如何找到提取端口号
  • @Amarnath 您应该询问管理该服务器的人。 Firebird 的默认端口是 3050 端口(如果您将 Port 属性保留在字符串之外,也将使用该端口。“连接被远程接口拒绝” 也可能意味着这是一个 Firebird 3 服务器这需要有线协议加密。需要将其设置为启用(或禁用),以便 Firebird ADO.net 提供程序能够连接。
  • 我愿意,但是很多经常在 SO 上发帖的人不喜欢他们的 cmets 被编辑。而且尝试猜测并不总是有效。
  • 非常抱歉打扰,我仍然收到错误“无法完成对主机 '192.168.1.11' 的网络请求,即使我启用了从 firebird.config 文件中删除 # 的“Wirecrypt=Enable”。仍然我遇到了错误。
  • @Amarnath 设置为WireCrypt=Enabled(以d结尾),否则提示指定的ip+端口没有Firebird服务器监听
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-29
  • 1970-01-01
  • 1970-01-01
  • 2020-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多