【问题标题】:I can't connect to the mysql database with Spring Boot & JPA我无法使用 Spring Boot 和 JPA 连接到 mysql 数据库
【发布时间】: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下使用密码登录。

标签: java mysql tomcat spring-boot


【解决方案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服务器。

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

    虽然春天会帮助你改变。

    1. 如果您使用表名、列指定 jpa。确保使用正确的语法 @Table(name='xxx') @Column(name= 'xxx')
    2. 注意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 类应该在其他类之外,或者你应该指定其他类的路径。

    【讨论】:

      猜你喜欢
      • 2016-12-02
      • 2020-09-03
      • 2018-10-09
      • 2018-10-22
      • 2019-02-26
      • 1970-01-01
      • 2021-04-24
      • 2020-07-07
      • 2020-01-11
      相关资源
      最近更新 更多