无法使用ISQL连接到本地Firebird

时间:2014-03-17 17:16:52

标签: firebird firebird2.5 isql

我正在尝试设置一个本地firebird实例来测试,但即使是ISQL也无法连接到它。我按照快速入门指南here尝试了以下内容:

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代码的详细参考吗?

2 个答案:

答案 0 :(得分:12)

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

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

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

答案 1 :(得分:0)

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

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

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

  1. 要创建一个,我们使用演示数据库作为助手:
<块引用>

以su身份打开sql:>sudo isql(我们没有目录的用户权限)

  1. 连接到现有数据库:
<块引用>

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

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

<块引用>

"/Library/Frameworks/Firebird.framework/Resources/English.lproj/var/"

(jro)