我在运行模式的spring应用程序中使用h2
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
我能够插入和提取数据(使用邮递员),但我想亲自查看数据库并探索方案和数据
我正在使用Intellij
我已经安装了H2客户端http://www.h2database.com/html/main.html 并通过sa和空白密码浏览(不明白为什么密码是空白的,也不知道如何更改密码)
更新 我看到当我停止我的Spring应用程序时,我仍然可以通过H2控制台浏览到H2,我当时希望它会离线...我没有得到它
答案 0 :(得分:0)
如果您使用的是内存中的h2数据库,请使用以下JDBC网址。
jdbc:h2:mem:testdb
后发布的配置
答案 1 :(得分:0)
我发现只有在使用文件数据库时才能这样做。
url: jdbc:h2:~/nexin;DB_CLOSE_DELAY=-1;MODE=MySQL;MV_STORE=FALSE;MVCC=FALSE
我使用的是dbVizualizer而不是Intelij。
答案 2 :(得分:0)
作为H2
documentation says:
支持以下连接模式:
- 嵌入模式(使用JDBC的本地连接)
- 服务器模式(使用JDBC或ODBC over TCP / IP进行远程连接)
- 混合模式(同时本地和远程连接)
为了能够从两个独立的应用程序简单地连接到数据库,连接模式应该是Server Mode
或Mixed Mode
(有关详细信息,请阅读h2文档)。您使用的模式取决于您用来连接它的连接网址,在您的情况下,连接网址为jdbc:h2:~/test
,这意味着您在Embedded Mode
中启动了H2。这意味着数据库服务器将从您的应用程序中启动,并且只能由该单个JVM访问。
<强> TLDR 强>
您只需使用Mixed mode
功能将模式更改为Automatic Mixed-Mode
即可。为此,只需将您的jdbc网址(在两个应用程序中 - 您的应用和客户端应用)更改为:jdbc:h2:~/databasefile;AUTO_SERVER=TRUE
。
此~/databasefile
是存储实际数据的位置 - 同样,为两个连接/应用程序访问同一文件也很重要。
如果您使用默认配置的Spring Boot,要更改jdbc网址,您只需添加以下属性:
spring.datasource.url=jdbc:h2:~/databasefile;AUTO_SERVER=TRUE