我在Windows上遇到HSQLDB V2.3的问题。我无法使用 HSQLDB服务器连接新数据库。
我已经设置了两个环境变量(也保持简单*)。除了保存我的输入外,这些变量没有任何效果。最初我是直接从HSQLDB文件夹加载服务器。
我正在遵循以下步骤:
每次通过服务器连接时,它都会创建一个名为“test”的数据库,而不是让我连接到server.properties中指定的两个数据库中的任何一个。
我在
中创建了一个' server.properties '文件HSQLDB JAR文件所在的位置。我想要两个数据库: tmp 和 dev :
# -- tmp
server.database.0=file:hsqldb/tmp_db/tmp
server.dbname.0=tmp_db
#
####
#
# -- dev
server.database.1=file:r:/.data/hsqldb/dev_db/dev
server.dbname.1=dev_db
我预计属性文件足以设置两个数据库。当我运行hsqldb管理器时,我没有获得tmp的连接说:
我收到一个弹出错误:
我使用 cmd -line手动创建了这两个,例如名为“ tmp ”:
可以连接并创建tmp:
作为documentation中的预测。当我使用上述“ server.properties ”文件启动HSQLDB服务器或明确指定属性时:
服务器只允许我连接一个名为“test”的数据库,如问题开头所述。
因为属性文件看起来很好并且进程内文件连接字符串有效,所以
我还在考虑server.properties文件位于错误的位置或由于某种原因未加载。如果有一种方法可以让服务器在开始时转储属性文件,这将是非常好的:-)提前感谢您的建议......
答案 0 :(得分:1)
我发现了这个问题。首先,感谢本教程:
在审核之后,我意识到了我的错误。
运行服务器脚本时, server.properties 文件必须位于当前文件夹中。我在Running and Using HSQLDB手册页上看到了这个但是误解了它的意思,我将属性文件放在我的%HSQLDB_HOME%/ lib文件夹中。糟糕。
当您查看BAT脚本时,它实际上将当前文件夹更改为%HSQLDB_HOME%/ data 文件夹...
因此,如果要使用默认的runServer.bat脚本,server.properties文件的默认位置应为:%HSQLDB_HOME%/ data。
对于那些想要从服务器软件中分离数据的人。我使用两个环境变量对默认脚本进行了改进,如下所示。
<强> RUNSERVER 强> .BAT:
@cd /d %HSQLDB_DATA%
@cd
@echo.
@rem __ @pause
%JAVA_HOME%\bin\java -classpath %HSQLDB_HOME%\lib\hsqldb.jar org.hsqldb.server.Server %1 %2 %3 %4 %5 %6 %7 %8 %9
@echo.
@pause
现在需要%HSQL_DATA%文件夹中的server.properties文件。这很有效。同样对于我的服务器,因为它用于开发/测试,我使用 - trace = true 选项。像很多这些东西,现在我得到它,这一切都很完美。希望我的误解会帮助那些在使用stackoverflow之前没有找到简单教程的人。