3

过去我曾将 h2 db 用作某些 java 应用程序的嵌入式数据库,但这次我想将它作为独立服务器 (tcp) 运行,我可以从另一个客户端连接到该服务器,更改默认用户和密码

我下载了 h2db,解压缩了 zip,我在 bin 目录中看到了以下内容

h2-1.4.196.jar
h2.bat
h2.sh
h2w.bat

我阅读了文档,发现要启动控制台以及服务器,我可以简单地执行

./h2.sh -webAllowOthers -web -tcpAllowOthers

有了这个,我可以打开 Web 控制台,使用 username=sa 和 password="" 登录,但我找不到更改默认用户名和密码的方法

根据文档,可以通过在连接字符串中添加值来完成

jdbc:h2:tcp://localhost/~/test;USER=sa1;PASSWORD=welcome

但是当我尝试从 Web 控制台打开连接时出现错误

Duplicate property "USER" [90066-196] 90066/90066

看起来用户是在服务器启动时定义的,我也读到有一个文件

.h2.server.properties

我可以在上面找到服务器属性,但我只看到这样的东西

12=Generic H2 (Embedded)|org.h2.Driver|jdbc\:h2\:~/test|sa
13=Generic H2 (Server)|org.h2.Driver|jdbc\:h2\:tcp\://localhost/~/test|sa

似乎在那里定义了用户名但没有密码,我找不到只为服务器定义参数的 ant 选项

Server options
Supported options are:
[-web]   Start the web server with the H2 Console
[-webAllowOthers] Allow other computers to connect - see below
[-tcp]   Start the TCP server
[-tcpAllowOthers] Allow other computers to connect - see below
[-tcpPort <port>] The port (default: 9092)
[-tcpPassword <pwd>] The password for shutting down a TCP server
[-properties "<dir>"]   Server properties (default: ~, disable: null)
[-baseDir <dir>]  The base directory for H2 databases (all servers)

我已经尝试启动服务器,后来控制台指向服务器,但我仍然找不到如何更改用户名和密码

启动服务器

java -cp h2-1.4.196.jar org.h2.tools.Server -web -tcp -webAllowOthers -tcpAllowOthers -tcpPassword welcome
TCP server running at tcp://10.157.196.152:9092 (others can connect)

连接到服务器

./console.sh -url tcp://localhost:9092 -driver org.h2.Driver -user sa -password welcome

我的问题是:

如何定义用于访问 Web 控制台的默认用户名/密码?

4

0 回答 0