权限被拒绝在OSX中创建firebird嵌入式数据库时出错

时间:2013-04-04 02:29:49

标签: macos firebird

首先,我并非100%确定我在OSX下使用嵌入式firebird客户端。我从firebirdsql.org下载的安装文件声明它包含Classic,Superclassic&嵌入式。与Windows版本不同,包中似乎没有专用的嵌入式库文件。 我假设libfbclient.dylib(我使用的重命名为libgds.dylib)可以用作嵌入式。如果我错了,我想这就是问题所在。有人能告诉我在哪里获得嵌入式dylib文件吗?

如果libfbclient.dylib也是嵌入式使用,那么我的问题仍然存在。当我第一次尝试创建数据库文件时,它失败并显示“权限被拒绝”。我试图在用户文档文件夹中创建此文件。 我正在使用Delphi中的Interbase Express组件进行连接。在windows环境下,这已经很好地服务了我多年。

完整的错误消息是......
Exception class EIBInterBaseError with message 'I/O error during "open O_CREAT" operation for file '/Users/martin/Documents/LightFactoryShows/default.fdb" Error while trying to create file Permission denied'

1 个答案:

答案 0 :(得分:2)

解决!在多次重读本文档后,我终于得到了它: http://www.ibphoenix.com/resources/documents/how_to/doc_103

OSX下的嵌入式库与windows中称为exe的库相同。 在/Library/Framworks/Firebird.framework文件夹中是一个名为“Firebird”的可执行文件。我不明白的关键文本是“将Firebird文件重命名为libfbembed.dylib”。我的Windows体验让我感到沮丧,因为在Windows中你永远不会将.exe重命名为.dll。我不知道它是否可以在Windows中使用,但我从未放过它。

我需要做一些更微不足道的事情,所以这里有完整的说明。

1)将“Firebird”{executable}链接到/usr/local/lib/libgds.dylib

ln -s /Library/Frameworks/Firebird.framework/Firebird /usr/local/lib/libgds.dylib

2)链接firebird.msg文件,使其显示在/ usr / local / lib文件夹中

ln -s /Library/Frameworks/Firebird.framework/Versions/A/Resources/English.lproj/var/firebird.msg /usr/local/lib/firebird.msg

3)将“security2.fdb”复制到/ usr / local / lib文件夹并更改其权限以提供写访问权限。它无法建立到此文件的链接。

cp /Library/Frameworks/Firebird.framework/Versions/A/Resources/English.lproj/var/security2.fdb /usr/local/lib
chmod 777 /usr/local/lib/security2.fdb.