Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot Spring启动数据源和h2数据库路径_Spring Boot_Spring Data Jpa_Spring Data_Datasource_H2 - Fatal编程技术网

Spring boot Spring启动数据源和h2数据库路径

Spring boot Spring启动数据源和h2数据库路径,spring-boot,spring-data-jpa,spring-data,datasource,h2,Spring Boot,Spring Data Jpa,Spring Data,Datasource,H2,在我的Spring启动应用程序中,我试图配置H2数据库文件夹的路径。我想按以下路径放置它: /home/public/h2 配置如下所示: # Datasource spring.datasource.url=jdbc:h2:file:/home/public/h2 spring.datasource.username=sa spring.datasource.password= spring.datasource.driver-class-name=org.h2.Driver 导致以下错误

在我的Spring启动应用程序中,我试图配置H2数据库文件夹的路径。我想按以下路径放置它:

/home/public/h2
配置如下所示:

# Datasource
spring.datasource.url=jdbc:h2:file:/home/public/h2
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
导致以下错误:

Caused by: org.h2.jdbc.JdbcSQLException: A file path that is implicitly relative to the current working directory is not allowed in the database URL "jdbc:h2:file:/home/public/h2". Use an absolute path, ~/name, ./name, or the baseDir setting instead. [90011-197]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:357) ~[h2-1.4.197.jar:1.4.197]
我还尝试了
spring.datasource.url=jdbc:h2:file:~/home/public/h2
,但它不起作用

我做错了什么以及如何正确配置路径?

spring.datasource.url=jdbc:h2:file:~/home/public/h2

致:

spring.datasource.url=jdbc:h2:~/home/public/h2


请尝试使用jdbc:h2:./name(显式相对路径),或

将系统属性
h2.implicitRelativePath
设置为true(以防止此检查)

对于Windows,绝对路径还需要包括驱动器
(“C:/…”)

h2.implicitRelativePath=true
spring.datasource.url=jdbc:h2:file:~/home/public/h2
更多详情请点击这里


    • 您的路径有两个问题,一个在开头,一个在结尾

      问题注释中的第一个注释是,~是一个特殊的路径字符,它指向用户的主目录

      如果您的主目录是,比如说,/home/alexanoid,并且您希望数据库位于/home/public/中,那么就不要使用~,因为~/home/public/h2意味着/home/alexanoid/home/public/h2


      第二个问题是,根据文档,数据库名称必须至少包含3个字符,因此“h2”不是有效的数据库名称。您需要选择稍长一点的数据库名称,例如“h2db”。

      谢谢您的回答。不幸的是,路径
      spring.datasource.url=jdbc:h2:~/home/public/h2
      不起作用。谢谢您的回答。我不清楚必须在哪里设置
      h2.implicitRelativePath=true
      。在我的Spring Boot
      application.properties
      文件中?在单个属性的情况下,
      spring.datasource.url=jdbc:h2:~/home/public/h2
      work@alexanoid对在
      应用程序中设置它。properties
      再试一次,我希望您检查了该url链接。我尝试了以下
      h2.implicitRelativePath=true-spring.datasource.url=jdbc:h2:~/home/public/h2
      我的文件夹
      /home/public/h2
      仍然是空的,里面没有数据库文件。。我的错在哪里?@alexanoid首先我们必须检查应用程序中是否启用了h2数据库。在spring boot中,默认情况下H2数据库未启用,因此在
      application.properties
      中将其设置为
      spring.H2.console.enabled=true
      ,然后检查日志以了解详细信息。将此类级注释放在类的顶部
      @AutoConfigureTestDatabase(connection=EmbeddedDatabaseConnection.H2)类YourClassName{}
      试试这个……波浪号
      ~
      将扩展到您的主目录。假设您的主目录为
      /home/public
      :除非您的数据库文件位于
      /home/public/home/public/h2
      位置,否则应删除波浪号
      ~
      /home/public
      h2.implicitRelativePath=true
      spring.datasource.url=jdbc:h2:file:~/home/public/h2