【问题标题】:Springboot: Access denied for user 'root'@'localhost' (using password: YES)Spring Boot:用户'root'@'localhost'的访问被拒绝(使用密码:YES)
【发布时间】:2021-04-14 21:23:37
【问题描述】:

尝试在springboot中使用如下配置连接mysql数据库:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/community?Unicode=true&characterEncoding=UTF-8&serverTimezone=America/Boston
    username: root
    password: 01021234
    hikari:
      pool-name: DateHikariCP
      minimum-idle: 5
      idle-timeout: 180000
      maximum-pool-size: 10
      auto-commit: true
      max-lifetime: 1800000
      connection-timeout: 30000
      connection-test-query: SELECT 1

它给了我一个例外java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

奇怪的是,我有另一个项目,我使用几乎相同的配置,但它工作正常,没有任何错误:

# DataSourceProperties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/community?characterEncoding=utf-8&useSSL=false&serverTimezone=America/Boston
spring.datasource.username=root
spring.datasource.password=01021234
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.maximum-pool-size=15
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.idle-timeout=30000

我尝试将网址更改为以下内容,现在可以正常工作了:

url: jdbc:mysql://localhost:3306/community?user=root&password=01021234&Unicode=true&characterEncoding=UTF-8&serverTimezone=America/Chicago

但我现在很困惑为什么我发布的代码的第一个 sn-p 不起作用。

【问题讨论】:

  • 您是否尝试将 URL “按原样”从其工作的属性文件复制到 yaml?一般来说,Spring Boot 应该能够以相同的方式处理 yaml 和属性。我的想法是了解这个问题是否与spring boot有任何关系(如果它不起作用)或者我们正在谈论连接参数到mysql的含义
  • 是的,我试过了,但还是不行。

标签: java mysql spring spring-boot


【解决方案1】:

经过几个小时的搜索,终于弄清楚了问题所在:

如果密码只包含数字,那么在 yml 文件中定义它的正确方法应该是:

password: '01021234'

【讨论】:

    猜你喜欢
    • 2021-01-08
    • 2013-05-07
    • 2020-03-18
    • 1970-01-01
    • 2016-07-11
    相关资源
    最近更新 更多