【发布时间】:2014-06-22 03:05:15
【问题描述】:
我在 Windows 上遇到了 HSQLDB V2.3 的问题。我无法使用 HSQLDB 服务器 连接新数据库。
- 服务器是否有日志或调试选项,以便我可以检查加载的属性和文件路径等?
- 我的属性文件正常吗?我不确定如何为 Windows 制定文件路径。
- 我可以在文件路径名上使用引号吗?
- 我用于 tmp 数据库的连接字符串是否正确?
- 使用 --props 服务器参数的正确语法是什么?
- --道具路径
- --props 路径/文件名
我已经设置了两个环境变量(也保持简单*)。这些变量除了保存我的输入之外没有任何作用。最初我是直接从 HSQLDB 文件夹加载服务器。
- HSQLDB_HOME ... 当前 HSQLDB 的主文件夹
- HSQLDB_DATA ... 数据存储库文件夹
我正在按照以下步骤操作:
每次我通过服务器连接时,它都会创建一个名为“test”的数据库,而不是让我连接到 server.properties 中指定的两个数据库中的任何一个。
- %HSQLDB_DATA%/
- test.log
- test.properties
- test.script
- test.tmp/ ..........(文件夹)
- test.lck
我在以下位置创建了一个“server.properties”文件:
- %HSQLDB_HOME%/lib/
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 的连接说:
- "jdbc:hsqldb:hsql://localhost/tmp"
- 用户:SA,密码:“”
我收到一个弹出错误:
- 数据库别名不存在 (Manager)
- [Thread[HSQLDB Connection @26827674,5,HSQLDB Connections @372f7a8d]]:数据库别名=tmp 不存在(服务器)
我使用 cmd 行手动创建了这两个,例如命名为“tmp”:
- %JAVA_HOME%\bin\java.exe -classpath %HSQLDB_HOME%\lib\hsqldb.jar org.hsqldb.server.Server org.hsqldb.server.Server --database.1 文件:r:/ .data/hsqldb/tmp_db --dbname.1 tmp_db
并且可以连接并创建tmp:
- %HSQLDB_DATA%/tmp_db/
- tmp.log
- tmp.properties
- tmp.script
- tmp.tmp/ ..........(文件夹)
- tmp.lck
正如documentation 中的预测。当我使用上述 'server.properties' 文件或明确指定属性启动 HSQLDB 服务器时:
- %JAVA_HOME%\bin\java.exe -classpath %HSQLDB_HOME%\lib\hsqldb.jar org.hsqldb.server.Server --trace true --props %HSQLDB_DATA%
服务器只会让我连接一个名为“test”的数据库,如问题开头所述。
因为属性文件看起来不错并且进程内文件连接字符串有效,
- jdbc:hsqldb:hsqldb/tmp_db/tmp
我考虑到 server.properties 文件位于错误的位置或由于某种原因未加载。如果服务器有办法在启动时转储属性文件,那就太好了:-) 提前感谢您的建议...
【问题讨论】:
标签: java windows window hsqldb