gpt4 book ai didi

java - HSQLDB 服务器模式用户名/密码

转载 作者:搜寻专家 更新时间:2023-10-31 08:14:00 26 4
gpt4 key购买 nike

如果我使用我的 Java 代码以服务器模式启动 HSQLDB,服务器启动时没有任何问题。但是,当我尝试通过 Java 代码或 HSQLDB DatabaseManagerSwing 连接到相同的服务器时;我无法连接。

我在仅内存模式下使用 user=conn1 和 password=conn1 启动了服务器。但是当连接到服务器时,它给了我以下异常:

java.sql.SQLInvalidAuthorizationSpecException: invalid authorization specification - not found: conn1

我只能通过提供 user=SA 和空白密码来连接。我在 Windows7 机器上使用 HSQLDB 2.2.5 和 JRE1.7。

谁能告诉我哪里做错了?

最佳答案

如果您使用最新版本的 HyperSQL 尝试这些服务器属性,您可能会收到一条错误消息,因为您的服务器属性不正确。属性“server.username”和“server.password”无效。 dbname.0 属性必须小写。

如果要使用SA以外的用户名创建服务器数据库,可以将用户名和密码附加到数据库路径:

server.database.0 = file:E:/DB/myDB;user=testuser;password=testpw
server.dbname.0 = mydb

服务器关闭后,不需要包含用户和密码。凭据仅用于创建数据库。之后,在与服务器建立连接时检查凭据。

由于最近评论中的问题,2020 年更新了更多信息:

  1. 只有在通过启动服务器创建新数据库时,才会考虑为 database.0 指定的用户名和密码。如果数据库文件在启动服务器之前就已经存在,则用户名和密码是不必要的,并且会被忽略。

  2. 新数据库的其他设置,例如 hsqldb.tx=mvcc,可以附加到 database.0 字符串。

  3. 您的服务器必须具有 database.0 的属性。如果您的服务器为两个不同的数据库提供服务,您可以为 database.1 添加属性。

  4. database.0 指定的文件路径对连接到服务器的用户是隐藏的。只有 dbname.0 值用于访问,例如:DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mydb;uer=testuser;password=testpw")

  5. getConnection调用中,最好分别声明用户和密码,以保持代码清晰:DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mydb", "testuser", "testpw")

  6. 查看指南 http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html了解所有详情。

关于java - HSQLDB 服务器模式用户名/密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8817780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com