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

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

首先,我不能 100% 确定我在 OSX 下使用嵌入式 firebird 客户端。我从 firebirdsql.org 下载的安装文件指出它包含 Classic、Superclassic 和 Embedded。与 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'

macos firebird
1个回答
3
投票

解决了!经过多次阅读该文档,我终于明白了: MacOSX 上的嵌入式 Firebird。

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
    
    
© www.soinside.com 2019 - 2024. All rights reserved.