H2完全忽略jdbcUrl中的IFEXISTS=false
H2 completely ignores IFEXISTS=false in jdbcUrl
我有以下代码来启动 H2 守护程序并使用 Hikari 连接到它:
// Start H2 daemon
server = Server.createTcpServer("-tcpDaemon").start();
// Connect Hikari to H2 server
HikariConfig hkConfig = new HikariConfig();
hkConfig.setDriverClassName("org.h2.Driver");
hkConfig.setJdbcUrl("jdbc:h2:" + server.getURL() + "/./ghost;MODE=MySQL;IFEXISTS=false");
...
但是,即使 IFEXISTS
在 JDBC URL 中设置为 false
,我在池初始化期间仍然遇到以下异常:
org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database "C:/Users/Cole/IdeaProjects/ghost2/ghost" not found, and IFEXISTS=true, so we cant auto-create it
我尝试将 'normal' 方式与 DriverManager
连接起来,但没有成功。抛出相同的异常。是否有不同的工作方式来配置我不知道的 H2 功能,或者我做错了什么?
这似乎是一条 badly-written 错误消息。有关详细信息,请参阅 issue #1894。
奇怪的是,<=1.4.197 中没有出现此问题。上面发布的完全相同的代码有效。据我所知 #1766,这是一个已修补的安全问题。
我有以下代码来启动 H2 守护程序并使用 Hikari 连接到它:
// Start H2 daemon
server = Server.createTcpServer("-tcpDaemon").start();
// Connect Hikari to H2 server
HikariConfig hkConfig = new HikariConfig();
hkConfig.setDriverClassName("org.h2.Driver");
hkConfig.setJdbcUrl("jdbc:h2:" + server.getURL() + "/./ghost;MODE=MySQL;IFEXISTS=false");
...
但是,即使 IFEXISTS
在 JDBC URL 中设置为 false
,我在池初始化期间仍然遇到以下异常:
org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database "C:/Users/Cole/IdeaProjects/ghost2/ghost" not found, and IFEXISTS=true, so we cant auto-create it
我尝试将 'normal' 方式与 DriverManager
连接起来,但没有成功。抛出相同的异常。是否有不同的工作方式来配置我不知道的 H2 功能,或者我做错了什么?
这似乎是一条 badly-written 错误消息。有关详细信息,请参阅 issue #1894。
奇怪的是,<=1.4.197 中没有出现此问题。上面发布的完全相同的代码有效。据我所知 #1766,这是一个已修补的安全问题。