内存数据库中的Spring Boot无法从其他工具访问
问题描述:
我试图从intellij控制台访问内存H2数据库。我正在使用spring boot来配置一切。连接字符串是:spring.datasource.url = jdbc:h2:mem:testdb内存数据库中的Spring Boot无法从其他工具访问
当我使用intellij连接到数据库时,我看不到或查询表。我可以运行一个create table命令来获取它,但就是这样。下面是配置的图像:
一个SHOW TABLES查询的结果返回任何内容。
为什么我无法连接到此数据库?
答
使用像H2或HSQLDB这样的内存数据库时,只能从应用程序访问内存中的实例。
如果你想拥有一个共享数据库(这样你就可以看到里面有什么),你必须在[server mode] [2]中启动它,或者使用基于文件的模式(jdbc:h2:~/your-db
)。
答
@ m-deinum的答案通常是正确的,因为它仅在默认情况下适用于应用程序。如果您要访问从外面的-MEM情况下,你就必须要么:
- expose it through spring bean和使用TCP连接字符串或
- enable the h2 console并利用它来进行登录或
- 使spring-boot dev tools和使用其设施检查分贝
并确保应用程序正在运行。否则,你只需要创建另一个in-mem实例。
你为什么决定你的应用程序不运行你的模式? – Cepr0
我运行了你的代码和它的工作。我建议在你的属性文件中启用h2控制台: 'spring.h2.console.enabled = true' 'spring.h2.console.path =/console' 这样你可以从你的数据库中查询你的数据库浏览器(* http:// your_path/console *)。 –
它只是从你的日志:'从类路径资源执行SQL脚本[schema-h2.sql]' – Cepr0