如何在 Raspbian 上连接 TA+ 数据库 (Firebird)?

How to connect a TA+ Database (Firebird) on Raspbian?

我们目前在 Windows 工作机器上使用 Safescan 的 TA+ 软件,但尝试将数据库 (TADATA.FDB) 移动到小型 Linux 服务器上,这就是为什么我们买了一个 Raspberry Pi2 并在上面安装了 Raspbian 和 Firebird 2.5 Super。之后我们将 TADATA.FDB 文件从 Windows 7 机器复制到 Pi 并将 SYSDBA 密码设置为 "masterkey".

如果我尝试使用

连接到 Windows 机器上的所述数据库
CONNECT "C:\Program Files (x86)\SafeScan\TA4\TADATA.FDB" user 'SYSDBA' password 'masterkey'

一切正常,我可以访问数据库。但是,如果我使用等效命令

CONNECT "/var/lib/firebird/2.5/data/tadata.fdb" user 'SYSDBA' password 'masterkey'

在 Raspberry 上,我收到以下响应:

Statement failed, SQLSTATE = HY000
file /var/lib/firebird/2.5/data/tadata.fdb is not a valid database

如果我尝试使用他们提供的语法(SERVERIP:/var/lib/firebird/2.5/data/tadata.fdb)通过 Safescan 软件连接,程序会给我这个错误信息:

The settings of the provided database couldn't be opened 
(Error: file /var/lib/firebird/2.5/data/tadata.fdb is not a valid database
Connection authorization failure.
GDS Code: 335544323 Error Code: 3 )

我提供的凭据似乎设置正确,因为我可以使用它们来创建和连接任何其他数据库,例如示例数据库。为了确保密码设置正确,我还使用了

GSEC> modify SYSDBA -pw masterkey

具有root权限。

我应该怎么做才能连接到树莓派上的这个数据库?

编辑: "show version" 命令提供以下信息: 在 Raspbian 上(连接了 test.fdb):

ISQL Version: LI-V2.5.2.26540 Firebird 2.5
Server version:
Firebird/linux ARM (access method), version "LI-V2.5.2.26540 Firebird 2.5"
Firebird/linux ARM (remote server), version "LI-V2.5.2.26540 Firebird 2.5/tcp (raspberrypi)/P12"
Firebird/linux ARM (remote interface), version "LI-V2.5.2.26540 Firebird 2.5/tcp (raspberrypi)/P12"
on disk structure version 11.2

并且在 Windows 版本上(与 TADATA.FDB 连接):

ISQL Version: WI-V2.5.4.26856 Firebird 2.5
Server Version:
Firebird/x86/Windows NT (access method), version "WI-V2.5.4.26856 Firebird 2.5"
Firebird/x86/Windows NT (remote server), version "WI-V2.5.4.26856 Firebird 2.5/XNet (WIN7PC)/P12"
Firebird/x86/Windows NT (remote interface), version "WI-V2.5.4.26856 Firebird 2.5/XNet (WIN7PC)/P12"
on disk sturcture version 10.1

您需要在 windows 机器上使用 gbak 以可传输格式备份并在 raspberry pi 机器上恢复它,它们有不同的 cpus(x86 vs arm)和磁盘结构不同。

有关使用 gbak 的详细信息,请参阅 "Firebird Backup & Restore Utility" manual

如果你得到:

[ PROBLEM ON "begin backup: commit". feature is not supported SQLCODE:-901 ] 

虽然 运行 NBackup 在您的 Firebird 数据库上,但可能是因为数据库 OSD 是 10.1 而不是 11.2。(使用 gstat 找出)。

安装最新的 Firebird 版本,然后使用 GBak 备份和恢复您的数据库。 完成后 NBackup 将工作。