Macos firebird,错误的文件描述符/未定义您的用户名和密码

Macos firebird,错误的文件描述符/未定义您的用户名和密码,macos,firebird,Macos,Firebird,我正试图在我的mac(os 10.12)上设置一个测试环境,它需要Fishbowl/Firebird DB。无论我做什么,我都会在这两个错误之间来回跳跃: isql localhost:/Users/me/Fishbowl/database/data/EXAMPLE.FDB 这给了我: 您的用户名和密码未定义。询问您的数据库 管理员设置Firebird登录 以及使用gsec创建用户或更改密码的所有操作: 以及: 语句失败,SQLSTATE=HY000操作系统指令stat 失败 -错误的文件描述

我正试图在我的mac(os 10.12)上设置一个测试环境,它需要Fishbowl/Firebird DB。无论我做什么,我都会在这两个错误之间来回跳跃:

isql localhost:/Users/me/Fishbowl/database/data/EXAMPLE.FDB
这给了我:

您的用户名和密码未定义。询问您的数据库 管理员设置Firebird登录

以及使用gsec创建用户或更改密码的所有操作:

以及:

语句失败,SQLSTATE=HY000操作系统指令stat 失败 -错误的文件描述符

这非常令人沮丧。Fishbowl客户端本身似乎很好地命中了这个DB。我在/tmp/firebird目录中找到了chmod 770,甚至还尝试浏览example.fdb文件本身

有人能告诉我如何从我的java应用程序或命令行中点击这个DB吗?这两种方式都会产生这些错误。

1)您的连接线以“localhost:”开头。这意味着您需要使用TCP/IP连接来访问数据库服务器。数据库服务器在一个单独的进程中运行。这意味着
chmod
chown
只要firebird守护程序服务器在TCP端口上运行和侦听就不重要(默认值为3050AFAIR,您可以在文本文件
firebird.conf
中读取安装值)

实际上,存在所谓的“嵌入式服务器”或“嵌入式模式”,其中服务器作为DLL/so库加载到应用程序中。但是连接字符串不能有网络协议前缀,所以不应该是您的情况

2) 您可以查看位于的文档,在isql命令行中指定您的用户和密码。Firebird有一个内置的超级用户,即“SYSDBA”。关于密码,可能有点复杂。。。。它因Firebird版本和平台而异

2.0)服务器安装可能设置的任何SYSDBA密码,如果服务器与某个应用程序捆绑在一起,则该应用程序可以稍后覆盖它。然后,您必须联系应用程序开发人员,或者尝试删除捆绑的FB并安装您自己的普通FB,这样可能会导致应用程序无法正常运行

2.1)FB 2.x的Windows安装将“默认”SYSDBA密码设置为“主密钥”(实际上只有8个前符号起作用)

2.2)Linux安装FB 2.x会生成一个随机的SYSDBA密码,并将其保存到Firebird文件夹中的文本文件中

2.3)MacOS?不知道。也许它更接近Linux而不是Windows。所以试着找到这样一个文本文件并尝试“masterkey”

2.4)FB 3对认证方法和配置进行了大幅度检修,因此。。。所以很难说出具体的事情。至少对我来说

3) 我不知道什么是鱼缸,但谷歌建议: 如果是这样,那么检查该页的底线示例。他们强调你应该
sudo
所有这些命令。这也是有道理的,因为

3.1)Firebird守护程序可能已启用“可信身份验证”,将FB用户映射到操作系统用户。在UNIX上,至少将
SYSDBA
映射到
root
。在Windows上-到
管理员
(但是它是本地化的)。这不必启用,但如果启用,则UNIX命令正是使应用程序使用OS超级用户授权运行的原因,并且可能解释命令行示例中缺少用户和密码的原因

3.2)Firebird嵌入式服务器/模式作为应用程序进程的一部分工作,特别是在UNIX上的CS(经典服务器)包中,命令行实用程序往往属于这种模式。然后,它需要以
root
的身份运行,以从Firebird安全数据库读取高度敏感的数据,因此需要
sudo
命令。诚然,我不认为您的
isql
命令可能会在嵌入式模式下运行-因为您确实指定了“localhost:”前缀。但是上面wiki链接的示例-备份和还原-它们使用本地连接字符串,因此它们可能会以嵌入式方式运行。因此,这可能会给您另一个提示-尝试删除“localhost:“从连接字符串和到
sudo
isql的前缀,而不是从普通用户运行它。这很难成为正常模式,但出于测试目的,为什么不呢

希望这有帮助


另外,您也可以尝试Firebird IDE-它过于简单,但出于测试目的

火鸟版本是什么?您是否可以看到firebird守护进程正在运行并侦听TCP端口(可能是3050)?或者MAcOs是否在Linux上使用TCP自动启动服务,如
xinted
?当您收到
错误文件描述符时,您到底在做什么?