我知道,这不是严格的编程错误,因为我没有编写此程序,但是我在一台PC上安装了Streamsoft Pro,并且在将所有程序数据复制到第二台计算机时出现错误:
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
unsupported on-disk structure for file c:\STREAM soft\STREAM soft SQL\Baza\SYSTEMST.FB; found 11.2, support 11.1
发现here只是与Firebird版本相关的错误,所以我将其更新为2.5.8,现在又收到其他错误:
DMSystem.SystemDatabase:
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Your username and password are not defined. Ask your database administrator to set up a Firebird login.
我的问题是: 该如何设置?
答案 0 :(得分:2)
Firebird将所有用户/密码保存在所谓的“安全数据库”中,该数据库是每个已安装的Firebird实例之一。
Firebird 3或4可能更复杂/更灵活,但这不是您的情况。
一台计算机上可以运行多个Firebird 1.x或2.x实例,每个实例都有自己的“安全数据库”。但是通常,如果有的话,一台计算机上只有一个Firebird实例,因此,在大多数情况下,您可能会认为有一个“安全数据库”将Firebird用户和密码保存在计算机上。
我收到有关Firebird版本的错误 我将其更新为2.5.8
您没有明确地拼写出来,所以我只能猜测您实际上做了什么。
但是如果我能看懂星星,那就是这样:
SYSDBA
用户,而没有SteamSoft特定用户。如果这个读取的水晶球是正确的,那么最简单的方法就是
或者,您可以查阅SteamSoft文档或他们的支持。
很有可能您可以使用SteamSoft提供的诊断实用程序或内置的Firebird命令自己创建丢失的用户(如果您将获得所需的用户名和密码列表,但是SteamSoft可能不愿意拼出来)。与重新安装SteamSoft相比,创建用户要快得多,但是对于没有经验的用户,学习创建方式和创建内容的时间可能会更长。
如果可以的话,您可以将Firebird安装在与第一台计算机完全相同版本的新计算机上,它们(在同时使Firebird Server服务暂时停止的情况下)从旧计算机复制security database
换一个新的。它包含用户和密码。
或者,在获得所需的用户名和密码列表之后,可以在新计算机的Firebird中手动创建它们。
使用Firebird文件夹中的命令行GSEC实用程序:https://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/gsec.html
在任何与FB兼容的SQL实用程序中发出SQL命令,例如Firebird文件夹中的iSQL命令行实用程序或免费的FlameRobin IDE或任何其他实用程序。 https://firebirdsql.org/refdocs/langrefupd25-new-in-25-security.html。
P.S。还有另一种可能。用户和密码是“独立” Firebird服务器的功能(独立运行为特殊程序)。
也许SteamSoft被设计为可与“ Firebird Embedded”一起使用,即该软件不是独立运行,而是嵌入到SteamSoft程序本身中。 Firebird Embedded根本没有任何用户名和密码。如果能解决问题,那么SteamSoft不会提供不存在的用户名和密码,但根本不会提供。然后可能会发现SteamSoft与Firebird的非嵌入式版本不兼容。但这只能与SteamSoft文档或帮助台联系。
答案 1 :(得分:0)
第一个错误意味着您的数据库版本比Firebird安装版本新。通常最好使用备份和还原在系统之间移动数据库。既然您已经解决了该错误,我将只指向Why do I get an unsupported on-disk structure error when openining a Firebird database?以获得更多详细信息。
对于第二个错误,这意味着登录失败。用户不存在,或者使用了错误的密码。默认的Firebird安装仅包含一个用户:SYSDBA
(取决于操作系统和安装程序的密码为masterkey
还是随机生成的密码)。
您的应用程序可能需要特定的用户,并且考虑到Firebird将用户存储在单独的安全数据库中,因此该用户不存在。找出该用户的用户名并创建它。
您可以通过两种方式在Firebird 2.5中创建用户:
使用SQL user management statements:
create user <username> password <password>;
commit;
这需要SYSDBA访问(或安全数据库中具有管理员权限的用户)。
使用命令行工具gsec(自Firebird 3以来,不推荐使用SQL用户管理语句)
gsec -user sysdba -password <sysdba-password>
add <username> -pw <password>