You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 5.6连接Firebird 1.5报错:connection rejected by remote interface 求解决

PHP 5.6 连接 Firebird 1.5 报错解决思路

你遇到的错误:

Connection attempt failed: SQLSTATE[HY000] [335544421] connection rejected by remote interface

结合你已排查的情况(防火墙放行3050端口、同网络其他机器可正常访问、Firebird 1.5不支持wireCrypt配置),可以从以下几个方向尝试解决:

  • 换用InterBase函数替代PDO
    PHP 5.6的PDO Firebird扩展对旧版本Firebird兼容性可能不佳,试试更传统的ibase_connect函数,它对早期Firebird/InterBase版本支持更好:

    $conn = ibase_connect("localhost/3050:/pathToMyDatabase.fdb", "SYSDBA", "masterkey", "UTF8");
    

    注意:使用前需确保PHP已启用interbase扩展(在php.ini中开启extension=interbase.so或extension=php_interbase.dll)。

  • 匹配Firebird客户端库版本
    PHP的Firebird扩展依赖系统中的客户端库(如libfbclient.so或fbclient.dll),必须使用Firebird 1.5对应的客户端库,不能用新版本的。新版本客户端会使用不兼容的协议,导致服务器拒绝连接。

  • 调整DSN参数与格式
    尝试修改PDO的DSN,换用IP地址替代localhost(避免本地解析问题),或指定兼容的协议版本:

    // 用IP地址替代localhost
    $str_conn="firebird:dbname=127.0.0.1/3050:/pathToMyDatabase.fdb;charset=UTF8";
    // 尝试指定旧协议版本(部分扩展支持)
    $str_conn="firebird:dbname=localhost/3050:/pathToMyDatabase.fdb;charset=UTF8;client_version=1.5";
    

    同时确认数据库路径绝对正确,Linux下要保证PHP进程有该文件的读权限。

  • 查看Firebird服务器日志
    前往Firebird安装目录的logs文件夹找到firebird.log,里面会记录连接拒绝的具体原因(比如协议版本不匹配、认证错误),这是定位问题最直接的方式。

  • 再次验证SYSDBA密码
    虽然其他机器能连,但要确保代码里的masterkey密码完全正确,Firebird密码默认区分大小写,别出现拼写错误。

内容的提问来源于stack exchange,提问作者Arnaldo Cícero Bezerra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 06:37:10