【问题标题】:How to fix this error in Spring Boot using Spring Data JPA and MySQL如何使用 Spring Data JPA 和 MySQL 在 Spring Boot 中修复此错误
【发布时间】:2017-08-17 19:42:29
【问题描述】:

我正在尝试使用 Spring Data JPA(在 Spring Boot 应用程序中)连接到 MySQL 数据库,但总是出现相同的错误:

java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)

我的application.properties 看起来像:

spring.datasource.url=jdbc:mysql://localhost:3306/demographics
spring.datasource.data-username=root
spring.datasource.data-password=root
spring.jpa.hibernate.ddl-auto=update

我知道urlusernamepassword 都不错。

【问题讨论】:

    标签: mysql spring-boot spring-data-jpa


    【解决方案1】:

    问题在于由于身份验证而创建与数据库本身的连接。 使用命令行或 mysql workbench 等工具执行此操作。

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%root%' WITH GRANT OPTION;
    

    【讨论】:

    • ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 'IDENTIFIED BY '%root%' WITH GRANT OPTION' 附近使用的正确语法我认为 IDENTIFIED BY 不允许在 GRANT 查询中使用。
    【解决方案2】:

    “通用应用程序属性”的Spring documentation 表明spring.datasource.data-username执行 DML 脚本(如果不同)的用户。我想你正在寻找:

    spring.datasource.username = root
    spring.datasource.password = root
    

    请注意,您不需要密钥的 data- 部分。

    请记住,如果两者都需要不同的凭据,则必须相应地指定它们,除非它们相同。此外,只需确保用户具有正确/必需的权限来访问您正在使用的架构。

    【讨论】:

      【解决方案3】:

      您在数据库中的帐户似乎不需要密码,所以只需在您的属性中输入空密码

      spring.datasource.data-password=
      

      【讨论】:

        猜你喜欢
        • 2020-08-27
        • 2019-09-16
        • 2017-11-29
        • 2016-06-22
        • 2018-03-01
        • 2017-05-09
        • 1970-01-01
        • 2023-03-12
        • 2018-08-06
        相关资源
        最近更新 更多