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

如何在Ubuntu中用Python连接FDB数据库?连接失败(SQLCODE:-902)

问题定位与解决步骤

从错误信息来看,当前是网络连接层面的失败,还没到验证密码、识别数据库路径的阶段,SQLCODE -902对应的就是网络连接类问题。以下是具体排查和解决方向:

1. 主机/端口连通性验证

  • 在运行Python代码的机器上,先测试主机可达性:
    ping 15.206.100.218
    
    如果ping不通,说明主机地址错误、目标主机离线,或者中间防火墙拦截了ICMP包。
  • 再测试Firebird默认端口(3050)是否开放:
    telnet 15.206.100.218 3050
    # 或用nc命令
    nc -zv 15.206.100.218 3050
    
    如果连接被拒绝,说明目标主机的Firebird服务未启动,或端口被防火墙拦截。

2. 检查Firebird服务状态

登录目标Ubuntu主机,确认Firebird服务是否正常运行:

sudo systemctl status firebird4.0

如果服务未启动,执行启动命令:

sudo systemctl start firebird4.0
# 设置开机自启
sudo systemctl enable firebird4.0

3. 配置防火墙规则

  • 检查Ubuntu本地防火墙(ufw)是否放行3050端口:
    sudo ufw status
    
    若无对应规则,添加端口放行:
    sudo ufw allow 3050/tcp
    sudo ufw reload
    
  • 如果是云主机,同时检查云服务商的安全组配置,确保入站规则允许3050端口的TCP连接。

4. 调整Firebird监听配置

登录目标主机,修改/etc/firebird/4.0/firebird.conf配置文件:

  • 找到RemoteBindAddress参数,将默认的127.0.0.1注释掉,改为0.0.0.0(允许所有IP访问):
    RemoteBindAddress = 0.0.0.0
    
  • 重启Firebird服务使配置生效:
    sudo systemctl restart firebird4.0
    

5. 修正Python连接参数

网络连通后,注意远程连接时的数据库路径格式,需整合主机地址和文件路径:

# 格式:主机地址:数据库绝对路径
database = '15.206.100.218:/home/ubuntu/Firebird4.0/A.fdb'
con = fdb.connect(database=database, user=user, password=pswd2, charset='UTF8')

无需单独传递host参数,直接将主机信息写入database参数即可。

内容的提问来源于stack exchange,提问作者sunShine

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:50:34