Я получаю сообщение об ошибке после открытия консоли базы данных h2, я ввожу имя базы данных, но оно показывает, что база данных не найдена - PullRequest
4 голосов
/ 26 марта 2019

База данных "C: / Users / Barlekar / onlineshoppings" не найдена, и IFEXISTS = true, поэтому мы не можем автоматически создать ее [90146-199] 90146/90146 (Справка) org.h2.jdbc.JdbcSQLNonTransientConnectionException: База данных "C: / Users / Barlekar / onlineshoppings "не найден, и IFEXISTS = true, поэтому мы не можем автоматически создать его [90146-199]

Ответы [ 3 ]

7 голосов
/ 16 апреля 2019

Используйте версию базы данных H2 до 2019 года, которая автоматически создает базу данных каждый раз, когда вы запускаете автономное приложение.Например, версия 1.4.193.Ваша pom.xml должна включать эту зависимость:

<dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.4.193</version>
</dependency>
5 голосов
/ 11 июня 2019

Если вы имеете дело с проектом Spring Boot, измените URL JDBC jdbc:h2:~/test на jdbc:h2:mem:testdb на странице входа в систему, который является URL-адресом по умолчанию, настроенным Spring Boot.

4 голосов
/ 27 марта 2019

Вы случайно обновили H2?

Я думаю, что это связано со следующим коммитом H2:

https://github.com/h2database/h2database/commit/8b53f3999c6c5c3d5ca29020e2657968f4f59ec4

и это изменение было сделано из-за следующего эксплойта:

https://www.exploit -db.com / подвигах / 45506

Это означает, что по умолчанию для H2 теперь установлено значение , а не для автоматического создания баз данных при запуске в автономном сетевом режиме.

Если вы прочитали и поняли вышеизложенное и все еще хотите разрешить автоматическое создание базы данных, просто добавьте флаг -ifNotExists в команду h2 start (команду java -cp ...).

...