【问题标题】:connecting external firebird database with php pdo by TCP/IP [duplicate]通过 TCP/IP 将外部 firebird 数据库与 php pdo 连接 [重复]
【发布时间】:2017-11-29 21:45:59
【问题描述】:

我正在尝试使用 php pdo 连接到外部 firebird 数据库。 我收到消息:

SQLSTATE[HY000] [335544721] 无法完成对主机“192.168.0.10”的网络请求

我的firebird服务器64位windows和firebird版本是64bit version 2.1 我可以使用 php pdo 从该服务器本地连接到 firebird。

我的网络服务器是 64 位 linux 服务器,我无法连接到 firebird,但我可以使用 isql-fb 实用程序连接。

我已经用谷歌搜索了一个星期,但我的结果为零:(

提前致谢。

我的问题被标记为重复,但我的问题不同。我可以连接控制台,我无法连接 php。但我可以从 localhost 连接 php。

$dsn = 'firebird:DataSource=192.168.0.10;Database=C:\Ofisnet\Data\SAV2012.FDB;charset=UTF8;';
echo $dsn . '<br>';
$userName = "SYSDBA";
$password = "password";
$conn = new SafePDO($dsn, $userName, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
error_reporting(E_ERROR);

【问题讨论】:

  • 您确定 firebird 服务器位于 192.168.0.10 IP 上并且没有防火墙规则阻止通信吗?您确定您的网站和数据库在同一个 IP 子网中吗?所以网站也是 192.168.0.x 和 - 那是同一个 192.168.0.x 子网,。不是另一个具有相同地址的子网吗?您确定目标服务器上的 firebird 正在侦听您的 PHP 连接到的同一端口吗?基本上,它与 Firebird 无关——它与通用 TCP/IP 诊断有关。拿 WireShark 或其他显示器检查连接信号是否传播
  • tcp traceroute 也可能有帮助,来自 PHP 机器。但它也适用于 UNIX,WinXP SP3 禁止它。就像en.wikipedia.org/wiki/Layer_four_traceroute - 你必须了解 PHP 使用哪个端口进行连接尝试,firebird 服务器正在侦听哪个端口 - 它们应该匹配。然后你 tcp-traceroute 将 TCP 连接连接到从 PHP 机器到 Firebird 机器的相同端口号,并查看连接无法传播的位置。

标签: php pdo tcp firebird tcp-ip


【解决方案1】:

在 Linux 上的 Firebird 中,数据库名称和用户登录名可能区分大小写。

如果没有工作,请分享更多细节。

【讨论】:

  • 它没有进行身份验证 - 它甚至无法连接到服务器进程。也许服务器刚刚完全关闭。但是一年,需要更多细节,如连接字符串等。
  • 身份验证失败会产生不同的错误消息。
猜你喜欢
  • 2017-04-25
  • 2013-08-03
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2018-05-10
  • 1970-01-01
  • 2016-05-02
  • 1970-01-01
相关资源
最近更新 更多