sai*_*vel 5 firebird firebird2.5
我正在尝试通过Flamerobin在主目录中创建Firebird数据库,但是我总是得到
*** IBPP::SQLException ***
Context: Database::Create
Message: isc_dsql_execute_immediate failed
SQL Message : -902
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements
Engine Code : 335544344
Engine Message :
I/O error during "open O_CREAT" operation for file "/home/user/test.fdb"
Error while trying to create file
Permission denied
Run Code Online (Sandbox Code Playgroud)
即使文件是chmod 777,文件/etc/firebird/2.5/firebird.conf也已修改为:
DatabaseAccess = Full
Run Code Online (Sandbox Code Playgroud)
设置为允许访问所有文件。服务正在运行:
$ ps ax | grep fireb
3909 ? S 0:00 /usr/sbin/fbguard -daemon -forever -pidfile /var/run/firebird/2.5/fbserver.pid
Run Code Online (Sandbox Code Playgroud)
即使奇怪的是netstat找不到连接端口:
netstat | grep 3050
Run Code Online (Sandbox Code Playgroud)
并返回空列表。
如果我连接到现有数据库,则所有工作正常,例如连接到
/var/lib/firebird/2.5/system/help.fdb
Run Code Online (Sandbox Code Playgroud)
正确显示表格。
我看到两个可能的原因:
您提到该文件是 chmod 777,这意味着该文件已经存在,因此创建新数据库将失败。
您正在尝试通过 Firebird 服务器创建(或连接)到用户文件夹(我假设是您的)中的文件(尽管没有服务器运行的事实可能表明情况并非如此)。
我假设 Firebird 服务器不是在您的帐户下运行(而是在 firebird 用户下运行),因此不允许访问您文件夹中的文件。
您需要在 Firebird 用户具有足够访问权限的位置创建(或访问)数据库,或者使用本地(嵌入式)连接(尽管我不确定flamerobin 是否支持)。
小智 5
你必须做一些事情......首先,让我们看看安全方面的东西......
在文件中 /etc/firebird/2.5/firebird.conf
部分:DatabaseAccess 它必须是这样的:
DatabaseAccess Restrict /the/directory/you/want/to/put/the/database
Run Code Online (Sandbox Code Playgroud)
现在,在文件中 /etc/firebird/2.5/aliases.conf
你把一个别名和目录...
diryouwant = /the/directory/you/want/to/put/the/database/database.fdb
Run Code Online (Sandbox Code Playgroud)
保存并重新启动 firebird 服务,如:
sudo service firebird-2.5"theversionyouhave" restart
Run Code Online (Sandbox Code Playgroud)
您必须像这样更改目录所有者:
sudo chown firebird.firebird /the/directory/you/want/to/put/the/database
Run Code Online (Sandbox Code Playgroud)
现在你可以毫无困难地使用弗拉罗宾了......
| 归档时间: |
|
| 查看次数: |
13445 次 |
| 最近记录: |