我正试图在我的mac (os 10.12)上设置一个测试环境,它需要Fishbowl/Firebird DB。无论我做什么,我都会在这两个错误之间来回弹跳:
isql localhost:/Users/me/Fishbowl/database/data/EXAMPLE.FDB这给了我:
您的用户名和密码未定义。请数据库管理员设置Firebird登录名。
以及使用gsec创建用户或更改密码的任何操作:
和:
语句失败,SQLSTATE = HY000操作系统指令stat失败-Bad文件描述符
这太令人沮丧了。鱼缸客户端本身似乎对这个DB打得很好。我有chmod 770 /tmp/firebird目录,甚至尝试将example.fdb文件本身刷新。
有人能告诉我如何从我的java应用程序或命令行中命中这个DB吗?这两种方法都会产生这些错误。
发布于 2016-12-09 20:40:35
1)连接线以"localhost:“开头。这意味着您要使用TCP/IP连接到达数据库服务器。数据库服务器在一个单独的进程中运行。这意味着只要在TCP端口上运行和侦听firebird守护进程服务器(默认为3050 AFAIR,您可以在文本文件firebird.conf中读取安装的值),chown和chown就不重要了。
实际上,有所谓的“嵌入式服务器”或“嵌入式模式”,其中服务器作为DLL/SO库加载到应用程序中。但是连接字符串不能有网络协议前缀,所以不应该是您的情况。
2)您可以在http://firebirdsql.org/manual/isql-switches.html上查看文档,以便在isql命令行中指定用户和密码。Firebird有一个内置的超级用户,即"SYSDBA“。关于密码,可能有点复杂.它与Firebird版本和平台不同。
2.0)服务器安装可能设置任何SYSDBA密码,如果服务器与某个应用程序捆绑在一起,该应用程序可以稍后重写它。然后,您要么与应用程序开发人员联系,要么尝试删除捆绑的FB并安装自己的普通FB,这样可能会使应用程序不再正常工作。
2.1) Windows安装FB2.x将“默认”SYSDBA密码设置为"masterkey“(实际上只有8个第一个符号重要)
2.2) Linux安装FB2.x会生成一个随机的SYSDBA密码,并将其保存到Firebird文件夹中的文本文件中。
2.3) MacOS?我也不知道。也许它更接近Linux而不是Windows。因此,尝试找到这样的文本文件并尝试"masterkey“
2.4)对FB 3的认证方法和配置进行了很大的改进,因此.所以很难说出具体的东西。至少对我来说。
3)我不知道鱼缸是什么,但谷歌建议:如果是的话,Mac,那就检查页面上的底线示例。他们强调,您应该sudo所有这些命令。这也有道理,因为
3.1) Firebird守护进程可能启用了“可信身份验证”,将FB用户映射到操作系统用户。在UNIX上,至少可以将SYSDBA映射到root。在Windows Administrator上(但是它是本地化的)。这不需要启用,但如果是的话,sudo命令正是使应用程序使用OS超级用户授权运行的原因,并可能解释命令行示例中缺少用户和密码的原因。
3.2) Firebird嵌入式服务器/模式作为应用程序进程的一部分工作,特别是在UNIX上的CS (Classic )包中,命令行实用程序往往属于这种模式。再一次,它需要作为root运行,以便从读取高度敏感的数据,因此需要sudo命令。当然,我不认为您的isql命令可能在嵌入式模式下运行--因为您确实指定了"localhost:“前缀。但是上面的wiki链接--备份和恢复--它们使用本地连接字符串,因此它们很可能以嵌入式方式运行。因此,这可能给您另一个提示--尝试从连接字符串中删除”localhost:“前缀,而不是从常规用户中运行sudo isql。这很难成为正常模式,但出于测试目的,为什么不这样做呢?
希望这能有所帮助。
PS。您也可以尝试这个Firebird IDE -它很简单,但同样,为了测试目的.http://www.flamerobin.org/dokuwiki/wiki/manual
https://stackoverflow.com/questions/41064872
复制相似问题