H2 Невозможно создать базу данных при запуске - PullRequest
1 голос
/ 19 мая 2019

Только что создал простой загрузочный проект из весеннего инициализатора.Я пошел, чтобы добавить локальный H2 DB для тестирования и не могу войти.Кажется, что он не может создать тестовую базу данных при запуске, но не может понять, почему это так.

spring:
  h2:
    console:
      enabled: true
      path: /h2
  datasource:
    url: jdbc:h2:mem:testdb;
    username: sa
    password:
    driver-class-name: org.h2.Driver
    platform: h2
  jpa:
    show-sql: true
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
        dialect=org:
          hibernate:
            dialect:
              H2Dialect: org.hibernate.dialect.H2Dialect

Database "mem:testdb" not found, and IFEXISTS=true, so we cant auto-create it [90146-199] 90146/90146

Ответы [ 4 ]

2 голосов
/ 25 мая 2019

У меня была такая же проблема, и я изменил версию Spring Boot на 2.1.3, и она работает

1 голос
/ 21 мая 2019

У меня тоже такая же проблема.При нажатии на http://localhost:8080/h2-console при получении консоли H2 DB, но не удается подключиться, он показывает, что «База данных» C: / ******* / test »не найдена, и IFEXISTS = true, поэтому мы не можем автоматически-создать его [90146-199] ».См. Ниже сообщение об ошибке: Снимок ошибки

Как было предложено выше, пробовал с JDBC Url jdbc: h2: mem: testdb, но не удача.

Любое предложение поможет.

1 голос
/ 20 мая 2019

Как сказал Штук.

Просто удалите точку с запятой:

wrong:    jdbc:h2:mem:testdb;
correct:  jdbc:h2:mem:testdb
0 голосов
/ 20 июля 2019

У меня была та же ошибка, и я обнаружил, что это полезно:

Добавление версии до 2019 года в файл pom.xml, как показано ниже:

<dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.4.193</version>
</dependency>

Это исправляет ошибку, но не является правильным способом сделать это. Более новая версия базы данных H2 не создает новую базу данных, если она не существует по умолчанию и включена в значение false в целях безопасности.

Лучше было бы добавить внесение изменений в URL как:

jdbc:h2:mem:testdb;IFEXISTS=FALSE;

Надеюсь, это поможет. Я внес изменения в мой application.properties файл.

...