使用 Spring-Boot 2.3.3 H2 内存数据库抛出 NonTransientConnectionException
With Spring-Boot 2.3.3 H2 In-Memory Database throws NonTransientConnectionException
目前我正在开发一个 Spring-Boot 项目,不幸的是 运行 遇到了一个我不知道如何解决的错误...
我在 application.properties 中为我的项目设置了 H2 In-Memory-Databae,如下所示:
# H2 In-Memory-Database Config
spring.datasource.generate-unique-name=false
spring.datasource.url=jdbc:h2:mem:testdb;MODE=MYSQL
spring.h2.console.enabled=true
在 localhost:8080/h2-console 上调用 H2-Console 并尝试登录,它抛出以下错误:
Database "/Users/.../testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149
org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database "/Users/supportmicha/testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200]
数据在那里,它在应用程序开始使用这个 data.sql 脚本填充:
INSERT INTO my_table (id, name, style, created_date, last_modified_date, min_on_hand, quantity_to_produce, price, upc, version ) values ('0a818933-087d-47f2-ad83-2f986ed087eb', 'TestName_1', 'TestStyle_1', CURRENT_TIMESTAMP , CURRENT_TIMESTAMP , 12, 200, 12.95, '0631234200036', 1);
INSERT INTO my_table (id, name, style, created_date, last_modified_date, min_on_hand, quantity_to_brew, price, upc, version ) values ('a712d914-61ea-4623-8bd0-32c0f6545bfd', 'TestName_2', 'TestStyle_2', CURRENT_TIMESTAMP , CURRENT_TIMESTAMP , 12, 200, 12.95, '0631234300019', 1);
INSERT INTO my_table (id, beer_name, beer_style, created_date, last_modified_date, min_on_hand, quantity_to_produce, price, upc, version ) values ('026cc3c8-3a0c-4083-a05b-e908048c1b08', 'TestName_3', 'TestStyle_3', CURRENT_TIMESTAMP , CURRENT_TIMESTAMP , 12, 200, 12.95, '0083783375213', 1);
在另一个关于 Whosebug 的对话中,有人通过使用较旧的 Spring-Boot-Version (2.1.15) 解决了这个问题 - 但我现在使用的是 2.3.3,保留这个非常重要版本。
另一个提到可以通过将 generating unique name 设置为 false 来解决 - 像这样:
spring.datasource.generate-unique-name=false
但这并没有帮助。
如果有人可以提示这里到底出了什么问题以及如何解决它,我会很高兴。
当您调用H2控制台并看到H2登录表单时,将JDBC URL:
表单字段值设置为jdbc:h2:mem:testdb
。
目前我正在开发一个 Spring-Boot 项目,不幸的是 运行 遇到了一个我不知道如何解决的错误...
我在 application.properties 中为我的项目设置了 H2 In-Memory-Databae,如下所示:
# H2 In-Memory-Database Config
spring.datasource.generate-unique-name=false
spring.datasource.url=jdbc:h2:mem:testdb;MODE=MYSQL
spring.h2.console.enabled=true
在 localhost:8080/h2-console 上调用 H2-Console 并尝试登录,它抛出以下错误:
Database "/Users/.../testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149 org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database "/Users/supportmicha/testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200]
数据在那里,它在应用程序开始使用这个 data.sql 脚本填充:
INSERT INTO my_table (id, name, style, created_date, last_modified_date, min_on_hand, quantity_to_produce, price, upc, version ) values ('0a818933-087d-47f2-ad83-2f986ed087eb', 'TestName_1', 'TestStyle_1', CURRENT_TIMESTAMP , CURRENT_TIMESTAMP , 12, 200, 12.95, '0631234200036', 1);
INSERT INTO my_table (id, name, style, created_date, last_modified_date, min_on_hand, quantity_to_brew, price, upc, version ) values ('a712d914-61ea-4623-8bd0-32c0f6545bfd', 'TestName_2', 'TestStyle_2', CURRENT_TIMESTAMP , CURRENT_TIMESTAMP , 12, 200, 12.95, '0631234300019', 1);
INSERT INTO my_table (id, beer_name, beer_style, created_date, last_modified_date, min_on_hand, quantity_to_produce, price, upc, version ) values ('026cc3c8-3a0c-4083-a05b-e908048c1b08', 'TestName_3', 'TestStyle_3', CURRENT_TIMESTAMP , CURRENT_TIMESTAMP , 12, 200, 12.95, '0083783375213', 1);
在另一个关于 Whosebug 的对话中,有人通过使用较旧的 Spring-Boot-Version (2.1.15) 解决了这个问题 - 但我现在使用的是 2.3.3,保留这个非常重要版本。
另一个提到可以通过将 generating unique name 设置为 false 来解决 - 像这样:
spring.datasource.generate-unique-name=false
但这并没有帮助。
如果有人可以提示这里到底出了什么问题以及如何解决它,我会很高兴。
当您调用H2控制台并看到H2登录表单时,将JDBC URL:
表单字段值设置为jdbc:h2:mem:testdb
。