我无法使用 Spring Boot 和 JPA 连接到 mysql 数据库

Posted

技术标签:

【中文标题】我无法使用 Spring Boot 和 JPA 连接到 mysql 数据库【英文标题】:I can't connect to the mysql database with Spring Boot & JPA 【发布时间】:2018-01-06 22:30:02 【问题描述】:

springboot 版本 4.3.10 mysql 版本 5.7.18 1.8版 mysql-connector-java 版本 5.1.38

错误 5976 --- [main] o.a.tomcat.jdbc.pool.ConnectionPool:无法创建池的初始连接。 java.sql.SQLException:用户'root'@'localhost'的访问被拒绝(使用密码:否)

【问题讨论】:

错误消息是“用户'root'@'localhost'的访问被拒绝”。检查密码是否正确。 问题是如果您有密码而不是在连接到数据库时没有提供密码,这就是它显示的原因(使用密码:否)。因此,在连接时使用该密码。所以,问题肯定是错误的连接参数。 你试过重设密码还是强行插入root用户? 密码正确,我在DOS下使用密码登录。 参考这个解决方案***.com/questions/52174740/… 【参考方案1】:

application.properties 中的示例 mysql 映射

schemaname -> 您尝试连接的 mysql 模式名称

passwordforschema -> 你的架构密码

spring:
    datasource:
        driver-class-name: com.mysql.jdbc.jdbc2.optional.MysqlDataSource
        url: jdbc:mysql://localhost:3306/schemaname
        username: root
        password: passwordforschema

【讨论】:

这里是配置 #DB spring.datasource.url = jdbc:mysql://localhost:3306/blog?useUnicode=true&useSSL=true spring.datasource.driverClassName = com.mysql.jdbc.Driver spring.datasource.username = root spring.datasource.password = 我希望您已经尝试使用您在 spring boot 中使用的相同用户名和密码连接到数据库,并且该用户具有足够的权限。 com.mysql.jdbc.jdbc2.optional.MysqlDataSource 无法转换为 java.sql.Driver 是的,我试过了,但我不知道如何检查权限 这是 GRANT ALL PRIVILEGES ON 的权限。 TO 'root'@'localhost' WITH GRANT OPTION GRANT PROXY ON ''@'' TO 'root'@'localhost ' 带有授权选项【参考方案2】:

请检查 application.properties 中的配置和数据库属性(有效凭据用户名和密码)

https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

点击链接:

https://www.mkyong.com/spring-boot/spring-boot-jdbc-mysql-hikaricp-example/

【讨论】:

【参考方案3】:

'root '@'localhost' (使用密码:否)

也许尝试将您的密码配置到您的 mysql 配置中

【讨论】:

我找到了答案,配置文件application.properties错误,我在使用application.yml时,错误消失了。【参考方案4】:

我认为您的问题是密码错误。如果您无法解决问题,请尝试检查以下内容。或者你可以先尝试通过IDE连接你的mysql服务器。

    确保你打开了mysql服务,你可以用IDE数据库功能测试连接它,比如IDEA。 小心useSSL=false,有时会致命。 如果你的mysql-connector-java的版本高于8.*,那你可能需要把datasource-driver-name改成com.mysql.cj.jdbc.Driver

虽然春天会帮助你改变。

    如果您使用表名、列指定 jpa。确保使用正确的语法 @Table(name='xxx') @Column(name= 'xxx') 注意mysql服务器的端口。

在窗口中。 netstat -ano |findstr: 3306

taskkill /PID enterPID /F

在 Linux 中 netstat -anp |grep 3306 kill -9 pid

检查 gradle 或 maven 依赖项 这就是我卡住的地方。

在 spring-boot 中,您可以自动设置配置。但是您需要将文件正确放置在它们的位置。

xx.yml需要放入资源(在IDEA中需要指定包为资源包) xxxApplication.class(spring-boot-starter 类应该在其他类之外,或者你应该指定其他类的路径。

【讨论】:

以上是关于我无法使用 Spring Boot 和 JPA 连接到 mysql 数据库的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot + Spring Data JPA + 事务无法正常工作

Spring-boot JPA 连接到 postgres,其中在运行时提供数据库和模式

无法将 Spring Data MongoDB + Spring Data JPA 与 Spring Boot 一起使用

Spring Boot JPA 和 H2 记录未持久化

JPA 在 Spring Boot 中导致 java.lang.NullPointerException

使用 Spring Boot 在 JPA 中访问 MySQL 视图