mybatis连接数据库时报错:Access denied for user ‘...‘@‘localhost‘ (using password: YES)

博客内容讲述了在尝试连接数据库时遇到的错误,包括密码错误、jdbc.properties文件中的空格和属性名错误。通过修正jdbc.properties文件,特别是确保属性前缀为'jdbc.',最终成功建立了数据库连接。示例中展示了正确的jdbc.properties配置,包括URL、用户名、密码和驱动类名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

连接数据库时出现以下错误

在这里插入图片描述
出现的原因

  1. 数据的密码写错了
  2. jdbc.properties文件中有多余的空格
  3. jdbc.properties文件中对应的数据库的属性名写错了

druid的jdbc.properties实例

jdbc.url=jdbc:mysql://127.0.0.1:3306/xk?allowMultiQueries=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
jdbc.username=root
jdbc.password=123456
jdbc.driverClassName=com.mysql.cj.jdbc.Driver

因为我之前没加 jdbc. 所以连接时就报错了,加上后成功连接!!!

在这里插入图片描述

### 解析 SQL 访问被拒原因 当 Tomcat 启动遇到 `java.sql.SQLException: Access denied for user 'root'@'localhost'` 错误,通常是因为 MySQL 数据库连接参数不匹配或权限设置不当所致[^1]。 #### 配置文件检查 确保配置文件中的数据库连接字符串和其他属性正确无误。对于基于 Java 的应用程序,常见的配置方式是在 `db.properties` 文件中定义这些值: ```properties jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT jdbc.username=root jdbc.password=your_password_here ``` 注意这里使用的是较新的驱动类名 `com.mysql.cj.jdbc.Driver` 而不是旧版本的 `com.mysql.jdbc.Driver`[^2]。 #### 用户认证验证 如果确认用户名和密码均输入正确但仍无法登录,则可能是由于用户的主机地址未授权给 `'root'@'localhost'` 或者存在其他安全策略限制了远程访问。此可以尝试重新设定 root 密码并授予适当权限: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password'; FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; ``` 上述命令不仅更改了本地用户的密码还允许来自任何地方(即 `%` 表示任意 IP 地址)对该账户进行身份验证[^5]。 #### 服务状态确认 有即使所有配置都看起来没问题,但如果 MySQL Server 自身处于停止状态也会引发同样的错误提示。因此建议先检查服务器运行状况,在 Windows 上可以通过命令行工具来控制其启停: ```batchfile net stop mysql net start mysql ``` 这有助于排除因服务崩溃而导致的问题[^3]。 #### 应用程序端口冲突排查 另外值得注意的一点是,某些情况下应用本身的监听端口号可能与其他正在使用的进程发生冲突,尽管这不是直接造成此特定异常的原因之一,但在调试过程中也应予以考虑。例如 Spring Boot 默认会占用 8080 端口作为 HTTP 请求入口,可以在 `application.yml` 中调整该数值以避开潜在干扰源[^4]: ```yaml server: port: 9090 ``` 通过以上几个方面的综合分析与处理措施,应该能够有效解决 Tomcat 启动报出的 SQL 连接失败问题。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

star_zhang_jx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值