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

SpringBoot连接MySQL报Access denied for user 'root'@'localhost'错误

问题概述

SpringBoot初学者开发基于SpringBoot的Java应用时,每次运行项目都会抛出固定异常:java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES),暂不清楚问题成因,查阅大量相关技术文章后未找到有效解决方案。

已提供的排查参考材料

application.properties 配置内容

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot?useSSL=false&useTimeZone=true&serverTimeZone=UTC&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=admin 
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.jpa.hibernate.ddl-auto=create

运行报错截图

排查&解决步骤

按以下优先级逐一验证,每步操作后重启项目测试:

  1. 先修正配置格式错误
    你贴的配置里spring.datasource.password=admin 行尾多了1个空格,SpringBoot读取配置时会把这个空格计入密码值,直接触发密码不匹配。先删掉这个多余空格,确保该行无前后多余空白,正确写法为spring.datasource.password=admin。
  2. 直连MySQL验证账号有效性
    打开本地终端执行命令mysql -uroot -padmin,验证账号密码是否正确:
    • 如果命令行同样报访问被拒绝,说明root账号的实际密码不是admin,重置root密码后同步更新配置里的password值即可
    • 如果能正常登录,执行show databases;确认是否存在springboot库,不存在就执行create database springboot;手动建库
  3. 校验本地访问权限
    登录MySQL后执行SQLselect host,user from mysql.user where user='root';,如果结果中root对应的host没有127.0.0.1和localhost,依次执行以下SQL授权:
    grant all privileges on *.* to 'root'@'127.0.0.1' identified by 'admin';
    grant all privileges on *.* to 'root'@'localhost' identified by 'admin';
    flush privileges;
    
  4. 排除基础环境问题
    确认本地MySQL服务处于启动状态,且监听端口为3306;如果使用MySQL8.x版本,确认项目引入的mysql-connector-java驱动版本为8.x系列,不要用5.x版本驱动连接8.x服务。

以上步骤操作完仍报错的话,补充提供项目pom.xml依赖配置、本地MySQL版本信息即可进一步定位。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 20:45:52