Springboot JPA:Unknown database 'springsecuritysystem';无法构建Hibernate SessionFactory;

17 浏览
0 Comments

Springboot JPA:Unknown database 'springsecuritysystem';无法构建Hibernate SessionFactory;

我对JPA和Springboot还不熟悉。我查看并尝试了这里的几篇帖子中的解决方案,但实际上无法解决我的问题。

当我尝试使用JPA连接我的mysql数据库时,它会抛出“Unknown Database 'springsecurity'”的错误。我已经验证了数据库的用户名和密码。

我正在使用mysqlworkbench作为关系型数据库管理系统。

application.properties:

spring.datasource.url = jdbc:mysql://localhost:3306/springsecuritysystem

spring.datasource.username = root

spring.datasource.password = password

spring.jpa.hibernate.ddl-auto = update

spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

抛出的错误:

2021-11-11 23:39:21.993 WARN 72026 --- [main] o.h.engine.jdbc.spi.SqlExceptionHelper:SQL错误:1049,SQLState:42000
2021-11-11 23:39:21.993 ERROR 72026 --- [main] o.h.engine.jdbc.spi.SqlExceptionHelper:未知数据库“springsecuritysystem”
2021-11-11 23:39:21.999 ERROR 72026 --- [main] j.LocalContainerEntityManagerFactoryBean:无法初始化JPA EntityManagerFactory:[PersistenceUnit:default]无法构建Hibernate SessionFactory;嵌套异常是org.hibernate.exception.SQLGrammarException:无法打开用于DDL执行的JDBC连接
2021-11-11 23:39:22.000 WARN 72026 --- [main] ConfigServletWebServerApplicationContext:在上下文初始化期间遇到异常-取消刷新尝试:org.springframework.beans.factory.BeanCreationException:在类路径资源[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]中定义的名为'entityManagerFactory'的bean创建失败:调用init方法失败;嵌套异常是javax.persistence.PersistenceException:[PersistenceUnit:default]无法构建Hibernate SessionFactory;嵌套异常是org.hibernate.exception.SQLGrammarException:无法打开用于DDL执行的JDBC连接
2021-11-11 23:39:22.001 INFO 72026 --- [main] o.apache.catalina.core.StandardService:正在停止服务[Tomcat]

所遵循的教程:[https://github.com/koushikkothagal/spring-security-jpa](https://github.com/koushikkothagal/spring-security-jpa)

0
0 Comments

问题原因:在MySQL中没有名为"springsecuritysystem"的数据库。

解决方法:在application.properties文件中编辑spring.datasource.url属性,添加"?createDatabaseIfNotExist=true"参数,这样如果数据库不存在,则会自动创建一个名为"springsecuritysystem"的新数据库。

下面是修改后的application.properties文件内容:

spring.datasource.url = jdbc:mysql://localhost:3306/springsecuritysystem?createDatabaseIfNotExist=true

0