无法用ISQL连接到本地Firebird。

问题描述 投票:8回答:1

我试图设置一个本地火鸟实例来测试,但甚至无法用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

有什么常见的陷阱我可能会碰到吗?我也尝试了上面的命令,包括运行和不运行火鸟服务。另外,有没有关于SQLSTATE代码的详细参考?

firebird firebird2.5 isql
1个回答
15
投票

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

默认情况下(在UAC下)用户没有对密码数据库的写访问权限,所以这需要提升为管理员。因此,访问Firebird需要您以具有足够权限的服务方式运行应用程序(例如,默认安装程序所做的),或者当以应用程序方式运行服务器时,以 "管理员 "身份运行它。另一个选择是不将其安装在Program Files中。

另外,当访问雇员数据库的例子时,这一点也适用,因为这个数据库文件也位于Program Files文件夹中。

© www.soinside.com 2019 - 2024. All rights reserved.