You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Hibernate CRUD应用报错:使用系统用户名连库被拒绝

解决Spring Hibernate应用启动时的java.sql.SQLException: Access denied for user错误

核心问题分析

报错明确指向数据库用户权限验证失败,结合你使用带空格的用户名Akshay Tembhekar,大概率是用户创建不规范、配置文件写法错误或权限未正确授予导致的。

具体解决方案

  1. 确认数据库用户创建与权限配置

    • 创建带空格的数据库用户时,必须用反引号包裹用户名,否则数据库会将空格后的内容识别为其他参数,执行以下SQL修正:
      CREATE USER `Akshay Tembhekar`@'localhost' IDENTIFIED BY '你的密码';
      GRANT ALL PRIVILEGES ON 你的数据库名.* TO `Akshay Tembhekar`@'localhost';
      FLUSH PRIVILEGES;
      
    • 执行后验证用户权限:SHOW GRANTS FOR Akshay Tembhekar@'localhost';,确保目标数据库的权限已正确授予。
  2. 修正application.properties配置

    • 带空格的用户名在配置文件中需用双引号包裹,避免解析错误,示例配置:
      spring.datasource.url=jdbc:mysql://localhost:3306/你的数据库名?useSSL=false&serverTimezone=UTC
      spring.datasource.username="Akshay Tembhekar"
      spring.datasource.password=你的密码
      spring.jpa.hibernate.ddl-auto=update
      spring.jpa.show-sql=true
      
    • 仔细核对用户名、密码、数据库名称的拼写,确保和实际创建的完全一致。
  3. 验证数据库连接可用性

    • 使用数据库客户端(如MySQL Workbench)尝试用Akshay Tembhekar账号连接localhost数据库:
      • 若连接失败,回到第一步检查用户创建和权限配置;
      • 若连接成功,检查应用配置文件是否存在格式错误(如多余空格、特殊字符未转义)。
  4. 检查依赖兼容性

    • 确保pom.xml中引入了正确版本的数据库驱动和Spring/Hibernate依赖,以MySQL为例:
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.33</version>
          <scope>runtime</scope>
      </dependency>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-jpa</artifactId>
      </dependency>
      
    • 避免依赖版本冲突,建议使用Spring Boot的依赖管理来统一版本。

内容的提问来源于stack exchange,提问作者Akshay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:54:32