Spring 引导数据源和 h2 数据库路径
Spring Boot datasource and h2 database path
在我的 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:~/home/public/h2
或
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 引导应用程序中,我正在尝试配置 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:~/home/public/h2
或
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”。