如何解决Firebird数据库连接localhost被拒绝(SQLCODE -902)的问题?
Firebird 2.0.1 连接失败排查思路
问题背景
过去两周一直通过isql提示符成功连接Firebird 2.0.1数据库,使用的连接字符串:
SQL> CONNECT "localhost:C:\Users\casa\Desktop\DB-Helper\PDVDATA.FDB" user 'SYSDBA' password 'masterkey';
今日突然无法连接,出现错误:
Statement failed, SQLCODE = -902 Unable to complete network request to host "localhost". -Failed to establish a connection. -无法建立连接,因为目标计算机主动拒绝了连接。
唯一变更:昨日Windows 8关机时自动完成系统更新,无其他安装或操作。
已尝试操作:
- 在Windows防火墙高级安全中创建TCP 3050端口的入站、出站允许规则(命名为gds_db)
- 执行
telnet localhost 3050,返回:正在连接localhost...无法打开到主机的连接,在端口 3050: 连接失败 - 另一台Ubuntu电脑执行相同telnet测试,结果一致
解决思路
- 检查Firebird服务状态:Windows更新可能导致服务未自动启动。按Win+R输入
services.msc打开服务列表,找到Firebird相关服务(通常为Firebird Guardian Default Instance或Firebird Server Default Instance),确认状态为「正在运行」。若未运行,手动启动并将启动类型设为「自动」。 - 验证端口监听状态:执行
netstat -ano | findstr :3050查看3050端口是否被监听。无结果则说明Firebird未正常启动监听,需查看Firebird日志(默认路径C:\Program Files\Firebird\Firebird_2_0\log)排查启动失败原因。 - 检查服务运行权限:右键Firebird服务→「属性」→「登录」选项卡,确认运行账户(默认Local System)拥有数据库文件目录(
C:\Users\casa\Desktop\DB-Helper)及Firebird安装目录的读写权限。 - 尝试本地直连测试:修改连接字符串为本地路径形式:
CONNECT "C:\Users\casa\Desktop\DB-Helper\PDVDATA.FDB" user 'SYSDBA' password 'masterkey';,若能连接则说明网络监听模块异常,可执行Firebird安装目录下bin\instsvc.exe的instsvc install命令重新注册服务。 - 确认数据库文件权限:右键
PDVDATA.FDB→「属性」→「安全」,确保Firebird服务账户(或Everyone)拥有该文件的读写权限。 - 回滚系统更新:若以上操作无效,打开「控制面板」→「程序和功能」→「查看已安装的更新」,找到昨日安装的更新并卸载,重启后再次测试连接。
内容的提问来源于stack exchange,提问作者Tezcatlipoca0000
相关产品推荐
相关产品推荐

