内存数据库中的Spring Boot无法从其他工具访问

问题描述:

我试图从intellij控制台访问内存H2数据库。我正在使用spring boot来配置一切。连接字符串是:spring.datasource.url = jdbc:h2:mem:testdb内存数据库中的Spring Boot无法从其他工具访问

当我使用intellij连接到数据库时,我看不到或查询表。我可以运行一个create table命令来获取它,但就是这样。下面是配置的图像:

enter image description here

一个SHOW TABLES查询的结果返回任何内容。

为什么我无法连接到此数据库?

+1

你为什么决定你的应用程序不运行你的模式? – Cepr0

+0

我运行了你的代码和它的工作。我建议在你的属性文件中启用h2控制台: 'spring.h2.console.enabled = true' 'spring.h2.console.path =/console' 这样你可以从你的数据库中查询你的数据库浏览器(* http:// your_path/console *)。 –

+1

它只是从你的日志:'从类路径资源执行SQL脚本[schema-h2.sql]' – Cepr0

使用像H2或HSQLDB这样的内存数据库时,只能从应用程序访问内存中的实例。

如果你想拥有一个共享数据库(这样你就可以看到里面有什么),你必须在[server mode] [2]中启动它,或者使用基于文件的模式(jdbc:h2:~/your-db)。

@ m-deinum的答案通常是正确的,因为它仅在默认情况下适用于应用程序。如果您要访问从外面的-MEM情况下,你就必须要么:

并确保应用程序正在运行。否则,你只需要创建另一个in-mem实例。