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

Spring Boot集成MySQL遇Access denied数据库连接权限错误求助

排查Spring Boot连接MySQL的权限错误

问题现象

启动Spring Boot应用时遇到以下错误:

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

相关配置文件

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/AssignmentSubApp_DB
spring.datasource.username=root
spring.datasource.password= password123

spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.show-sql=true
#spring.jpa.hibernate.ddl-auto=update

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.1.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.AssignmentApp</groupId>
    <artifactId>AssignmentSubmission</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>AssignmentSubmission</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

排查与解决步骤

1. 修正密码配置的空格问题

从application.properties中可以看到spring.datasource.password= password123的密码前有多余空格,这会导致实际传递的密码带空格,与MySQL中存储的密码不匹配。直接去掉空格:

spring.datasource.password=password123

2. 验证MySQL用户权限

登录MySQL控制台,执行以下命令确认root@localhost的权限情况:

SELECT user, host FROM mysql.user WHERE user='root';
SHOW GRANTS FOR 'root'@'localhost';

若该用户没有AssignmentSubApp_DB数据库的操作权限,执行授权命令:

GRANT ALL PRIVILEGES ON AssignmentSubApp_DB.* TO 'root'@'localhost';
FLUSH PRIVILEGES;

3. 确认数据库与服务状态

  • 检查数据库是否存在:
SHOW DATABASES LIKE 'AssignmentSubApp_DB';

不存在则创建:

CREATE DATABASE AssignmentSubApp_DB;
  • 确保本地MySQL服务正在运行,端口3306未被占用。

4. 命令行测试连接

用命令行直接测试数据库连接,确认参数正确性:

mysql -u root -ppassword123 -h localhost -P 3306 AssignmentSubApp_DB

如果能成功连接,说明数据库端配置无问题,重启Spring Boot应用即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:24:50