当前我正在从事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并尝试登录,会引发以下错误:
找不到数据库“ /Users/.../testdb”,可以预先创建数据库,也可以允许远程数据库创建(在安全环境中不建议使用)[90149-200] 90149/90149 org.h2.jdbc.JdbcSQLNonTransientConnectionException:未找到数据库“ / Users / supportmicha / testdb”,或者预先创建了数据库,或者允许远程创建数据库(在安全环境中不建议使用)[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);
在另一个关于stackoverflow的对话中,有人使用较旧的Spring-Boot-Version(2.1.15)解决了这个问题-但我现在使用的是2.3.3,因此保持该版本非常重要。
另一个人提到可以通过将 generate unique unique 设置为false来解决-像这样:
spring.datasource.generate-unique-name=false
但这没有帮助。
如果有人能给出关于这里到底出了什么问题以及如何解决的提示,我会很高兴。
答案 0 :(得分:2)
调用H2控制台并看到H2登录表单时,请将JDBC URL:
表单字段的值设置为jdbc:h2:mem:testdb
。