8

我正在尝试设置一个本地 firebird 实例进行测试,但我什至无法使用 ISQL 连接到它。我尝试按照此处的快速入门指南进行操作:

CONNECT ..\examples\empbuild\employee.fdb user SYSDBA password masterkey;

结果是:

Statement failed, SQLSTATE = 08001
unavailable database

经过一番搜索,我尝试将其修改为:

CONNECT "localhost:C:\Program Files\Firebird\Firebird_2_5\examples\empbuild\employee.fdb" user SYSDBA password masterkey;

结果是:

Statement failed, SQLSTATE = 28000
cannot attach to password database

在确认我有正确的目录路径后,我决定暂时放弃连接并尝试创建一个新数据库:

SQL>CREATE DATABASE 'C:\data\test.fdb' page_size 8192
CON>user 'SYSDBA' password 'masterkey';

这也给了我错误:

Statement failed, SQLSTATE = 08001
unavailable database

我可能会遇到任何常见的陷阱吗?我还尝试了上面的命令,无论是否运行 firebird 服务。还有关于 SQLSTATE 代码的详细参考吗?

4

2 回答 2

16

正如我在评论中已经提到的,问题是由将 Firebird 服务器作为应用程序运行引起的。Firebird 的密码数据库 ( security2.fdb) 位于C:\Program Files\Firebird\Firebird_2_5. 由于这个数据库(几乎,但不完全)是一个普通的 Firebird 数据库,服务器需要对该数据库的写访问权(用于事务等)。

默认情况下(使用 UAC)用户没有密码数据库的写入权限,因此这需要提升到管理员。因此,访问 Firebird 需要您将应用程序作为具有足够权限的服务运行(例如,由默认安装程序完成),或者在将服务器作为应用程序运行时以“以管理员身份”运行它。另一种选择是不在 Program Files 中安装它。

此 BTW 在访问示例员工数据库时应用双重,因为此数据库文件也位于 Program Files 文件夹中。

于 2014-03-19T07:41:30.650 回答
0

这适用于 macOS/OSX(我的是 10.15)firebird 2.5 版用户。

  1. 这里的安装过程不要求输入 sysdba 密码。这意味着:新安装后安全数据库'security2.fdb' 不存在。

这似乎是出于安全原因故意的since > ver 2.5

  1. 为了创建一个,我们使用演示数据库作为助手:

open sql as su: >sudo isql (我们在 dir 上没有用户权限)

  1. 连接到现有数据库:

sql>connect "/Library/Frameworks/Firebird.framework/Resources/examples/empbuild/employee.fdb " 用户 'SYSDBA' 密码 'masterkey';

现在我们在文件夹中创建了丢失'security2.fdb'的文件:

“/Library/Frameworks/Firebird.framework/Resources/English.lproj/var/”

(jro)

于 2021-02-18T20:25:52.983 回答