在macOS上运行Firebird 3,本地连接失败,并显示:无法访问锁定文件目录/ tmp / firebird /

时间:2018-06-27 13:14:26

标签: firebird isql firebird-3.0

我已经从firebirdsql.org提供的软件包中安装了firebird 3.0。

如果我尝试使用与数据库的本地连接: isql employee -user SYSDBA 它失败:

  

无法访问锁定文件目录/ tmp / firebird /

因此为/ tmp / firebird /添加了读/写/执行权限 sudo chmod a+rwx /tmp/firebird/
并再次执行命令将产生:

  

语句失败,SQLSTATE = 08001
  文件“ / tmp / firebird / fb_init”的“打开”操作期间I / O错误
  -尝试打开文件时出错
  -未知错误:-1

如果我对呼叫进行sudo,所有这些都将起作用,但这真的有必要吗?

在macOS上使用本地连接到Firebird数据库的正确方法是什么?

3 个答案:

答案 0 :(得分:7)

我在firebird问题跟踪器中发现了CORE-3871问题,该问题描述了问题及其解决方案。尝试打开本地连接的用户必须是firebird用户组的成员。

因此,使用以下命令将用户添加到mac bash上的firebird组:
sudo dseditgroup -o编辑-a myusername -t用户firebird

如果您尝试打开firebird附带的示例数据库employee,还必须授予该组对employee.fdb的写访问权限:
sudo chmod g + w /Library/Frameworks/Firebird.framework/Resources/examples/empbuild/employee.fdb

现在 /Library/Frameworks/Firebird.framework/Resources/bin/isql employee -user SYSDBA 应该可以工作

答案 1 :(得分:0)

我只输入-p和密码,就可以了。它正在工作。

答案 2 :(得分:0)

您当前的命令创建 Firebird Embedded 数据库引擎以连接到数据库。为了能够做到这一点,您当前的操作系统用户需要对数据库文件有足够的访问权限。有关如何解决该问题的详细信息,请参阅 answer by jonjonas68

解决方案的替代方案 - 如果您正在运行 Firebird 服务器 - 是通过 Firebird 服务器进程进行连接,例如使用 isql localhost:employee -user sysdba -password <sysdbapassword>。然后将应用运行 Firebird 服务器进程的用户的文件权限。但是,在这种情况下,您需要在连接时指定密码,因为无密码身份验证仅适用于 Firebird Embedded 连接。