刚刚从Spring初始化器创建了一个简单的Spring-Boot项目。我去添加了一个本地的h2db进行测试,无法登录。它似乎无法在启动时创建测试数据库,但无法弄清楚为什么会出现这种情况。
spring:
h2:
console:
enabled: true
path: /h2
datasource:
url: jdbc:h2:mem:testdb;
username: sa
password:
driver-class-name: org.h2.Driver
platform: h2
jpa:
show-sql: true
hibernate:
ddl-auto: create
properties:
hibernate:
dialect=org:
hibernate:
dialect:
H2Dialect: org.hibernate.dialect.H2Dialect
Database "mem:testdb" not found, and IFEXISTS=true, so we cant auto-create it [90146-199] 90146/90146
9条答案
按热度按时间643ylb081#
在早期版本的Spring中,默认url将是jdbc:h2:Mem:testdb,并且默认情况下创建了testdb。从2.3.0开始,如果没有提到url,它将自动生成数据库名称。自动生成的数据库名称可以在 Spring 日志中找到。
huus2vyu2#
我也犯过同样的错误,我发现下面这些错误很有帮助:
将2019年前版本添加到pom.xml文件,如下所示:
这修复了错误,但不是正确的方法。较新版本的H2数据库不会创建新的数据库,因为它在默认情况下不存在,并且出于安全目的被启用为False。
更好的方法是添加对URL进行更改,如下所示:
希望能有所帮助。我在
application.properties
文件中进行了更改。7qhs6swi3#
只需将此文件附加到
application.properties
文件。unftdfkk4#
就像卡顿说的那样。
只需删除分号:
jc3wubiy5#
我对Windows也有同样的问题。我只需将应用程序属性文件中的spring.datource.url更改为
jdbc:h2:file:C:/data/sample
并运行项目。之后,将JDBC URL设置为jdbc:h2:file:C:/data/sample
。看起来像图片JDBC URLwf82jlnq6#
我也遇到了同样的问题,我把Spring Boot的版本改为2.1.3,它就能工作了
flmtquvp7#
如果您为了使用h2DB而使用Spring Boot,请确保您对
pom.xml
文件具有依赖关系在服务器上启动应用程序后,您的
application.yml
使您可以通过URI/h2-console访问h2 DB,并使用用户名“sa”连接到名为“testdb”的数据库。jpfvwuh48#
错误:spring.datource.url=jdbc:h2:Mem:testdb
下面的解决方案对我很管用
正确:spring.datource.url=jdbc:h2:file:~/test;
ws51t4hk9#
我只需将应用程序属性文件中的spring.datource.url更改为jdbc:h2:file:c:/data/test并运行项目。
你可以看到这个视频。https://youtu.be/yYWPuM8k8K4