Java 使用spring boot(Web应用程序)连接MYSQL数据库失败

Java 使用spring boot(Web应用程序)连接MYSQL数据库失败,java,mysql,spring,hibernate,spring-boot,Java,Mysql,Spring,Hibernate,Spring Boot,我正在尝试使用MySQL服务器创建OAuth2登录函数 我在尝试运行SpringWeb应用程序时遇到此错误。我在尝试将应用程序与MySQL服务器连接时遇到了几个问题,问题不在于SQL server名称拼写错误 2018-04-27 18:39:52.883 WARN 62329 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to qu

我正在尝试使用MySQL服务器创建OAuth2登录函数

我在尝试运行SpringWeb应用程序时遇到此错误。我在尝试将应用程序与MySQL服务器连接时遇到了几个问题,问题不在于SQL server名称拼写错误

2018-04-27 18:39:52.883  WARN 62329 --- [           main] o.h.e.j.e.i.JdbcEnvironmentInitiator     : HHH000342: Could not obtain connection to query metadata : Unknown database 'test'
2018-04-27 18:39:52.895  INFO 62329 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
2018-04-27 18:39:52.916  INFO 62329 --- [           main] o.h.e.j.e.i.LobCreatorBuilderImpl        : HHH000422: Disabling contextual LOB creation as connection was null
2018-04-27 18:39:53.464  INFO 62329 --- [           main] org.hibernate.tool.hbm2ddl.SchemaUpdate  : HHH000228: Running hbm2ddl schema update
application.properties:

server.port=8081
server.context-path=/auth
security.basic.enable=false
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password =password
spring.datasource.testWhileIdle=true
spring.datasource.validationQuery=SELECT 1
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
当我使用空白用户名和密码运行应用程序时,会出现以下错误:

2018-04-27 18:42:37.225  WARN 62332 --- [           main] o.h.e.j.e.i.JdbcEnvironmentInitiator     : HHH000342: Could not obtain connection to query metadata : Access denied for user ''@'localhost' (using password: NO)
2018-04-27 18:42:37.237  INFO 62332 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
2018-04-27 18:42:37.256  INFO 62332 --- [           main] o.h.e.j.e.i.LobCreatorBuilderImpl        : HHH000422: Disabling contextual LOB creation as connection was null
2018-04-27 18:42:37.712  INFO 62332 --- [           main] org.hibernate.tool.hbm2ddl.SchemaUpdate  : HHH000228: Running hbm2ddl schema update

它告诉您为什么
未知数据库“测试”
您应该创建一个数据库“测试”或使用
spring.jpa.hibernate.ddl auto=create
这将创建数据库,即使存在,它也将覆盖存储的任何数据

您还可以在数据库url中使用
createDatabaseIfNotExist=true
,如

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


它言行一致

使用H2嵌入式数据库启动开发项目会更容易。嵌入式H2 db带有一个web控制台,您可以直接从浏览器访问创建的表

它也是一个内存中的数据库,当您启动spring boot应用程序时,它将是一个全新的数据库。您可以使用import.sql预加载它


这里有一个供你探索的方法。我总是用它来开始一个新的项目,也有助于学习。

所以应用程序现在可以运行了,谢谢!附加问题:我如何访问这个“自动”创建的数据库,以便编辑表等?@LedBaron基本上你不访问这个数据库和更新表,你应该使用实体定义和初始化脚本来完成,请参阅以下内容,这取决于你的操作系统,但我建议mysql workbench作为访问数据库的最佳工具