无法附加到密码数据库

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

我已经开始将我的 Firemonkey 应用程序移植到 OSX 中。我使用 DBExpress 驱动 DevArt。我阅读了这篇文章,以便将 Firebird 从服务器转换为嵌入式。

但是当我的应用程序启动时,它会引发异常:

无法附加到密码数据库

数据库是从我的 Windows 安装复制的,而不是在 OS X 上创建的。我不认为这是问题,但它在于从服务器到嵌入式的转换,因为文档适用于旧的 Firebird 版本。

您有什么想法可以解决我的问题吗?

delphi delphi-xe2 firebird firebird2.5
3个回答
1
投票

首先在win操作系统上备份数据库并在osx上恢复它。不同的物理存储格式。

此外,即使在嵌入式版本中,在 mac osx 上,Firebird 也会使用 security2.fdb(具有写入权限),以防您指定用户名/密码。 没有用户/通行证,它应该可以在没有 security2 数据库的情况下工作。


0
投票

Cannot attach to password database
表示firebird找不到用户数据库。在 Firebird 2.0 及更高版本上,该文件名为
security.fdb
security2.fdb
。该文件应位于您链接的 IBPhoenix 文章中所述的
firebird
文件夹中。


0
投票

用这个

  1. 第 1 步(复制 security.fdb):

/opt/firebird/bin/gbak -用户SYSDBA -密码主密钥 /opt/firebird/security.fdb /opt/firebird/security.fbk

如果出现以下错误,则必须将 security.fdb chown 给 firebird 用户!

gbak:错误:文件“/opt/firebird/security.fdb”的 I/O 错误 gbak: 错误:尝试打开文件 gbak 时出错:错误:权限 拒绝 gbak:由于错误而在完成之前退出

  • 第2步(恢复数据库):

/opt/firebird/bin/gbak -rep -用户 SYSDBA -密码主密钥 /opt/firebird/security.fbk /opt/firebird/security.fdb

  • 第3步(数据库转换):

/opt/firebird/bin/isql -用户 SYSDBA -密码 masterkey -i /opt/firebird/upgrade/security_database.sql /opt/firebird/security.fdb

  • 第 4 步(停止火鸟):

火鸟服务停止:

  • 第 5 步(覆盖旧的安全 fdb):

cp 安全.fdb 安全2.fdb

作者:Marcin Rybak

© www.soinside.com 2019 - 2024. All rights reserved.