Hibernate 无法从其他工具访问内存中的Spring引导数据库
我正试图从intellij控制台访问内存中的H2数据库。我正在使用SpringBoot来配置一切。连接字符串是:spring.datasource.url=jdbc:h2:mem:testdb 当我使用intellij连接到数据库时,我无法查看或查询表。我可以运行CREATETABLE命令来获取它,但仅此而已。以下是该配置的图像: SHOW TABLES查询的结果不返回任何内容Hibernate 无法从其他工具访问内存中的Spring引导数据库,hibernate,spring-boot,spring-data-jpa,h2,Hibernate,Spring Boot,Spring Data Jpa,H2,我正试图从intellij控制台访问内存中的H2数据库。我正在使用SpringBoot来配置一切。连接字符串是:spring.datasource.url=jdbc:h2:mem:testdb 当我使用intellij连接到数据库时,我无法查看或查询表。我可以运行CREATETABLE命令来获取它,但仅此而已。以下是该配置的图像: SHOW TABLES查询的结果不返回任何内容 为什么我不能连接到此数据库?当使用内存中的数据库(如H2或HSQLDB)时,内存中的实例只能从应用程序访问 如果你想
为什么我不能连接到此数据库?当使用内存中的数据库(如H2或HSQLDB)时,内存中的实例只能从应用程序访问
如果你想拥有一个共享数据库(这样你就可以看到里面有什么),你必须在[服务器模式][2]下启动它,或者改用基于文件的模式(
jdbc:h2:~/your db
)。@m-deinum的答案通常是正确的,因为默认情况下它只对应用程序可用。如果要从外部访问内存中的实例,必须:
- 并使用tcp连接字符串或
- 并将其用于登录或
- 启用并使用其设施检查数据库
并确保应用程序正在运行。否则,您只需在mem实例中创建另一个实例。为什么您决定您的应用程序不运行您的模式?我运行了您的代码并运行了它。我建议在您的属性文件中启用h2控制台:
spring.h2.console.enabled=true
spring.h2.console.path=/console
,这样您就可以从浏览器()中查询数据库了。这只是从您的日志:从类路径资源[schema-h2.SQL]执行SQL脚本
不要使用h2控制台,使用直接访问DB:当然,您看不到它。。。它是内存中的数据库,仅对应用程序可用。您基本上是从IntelliJ开始一个新的db。您必须在服务器模式下启动H2并连接到它,或者使用基于文件的URI而不是内存中的URI。