我已经从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数据库的正确方法是什么?
答案 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 连接。