IDEA 报错: java.sql.SQLException: Access denied for user ‘root ‘@‘localhost‘ (using password: YES)

本文探讨了如何解决使用MySQL 8.23时遇到的连接问题,包括检查jdbc.properties配置、数据库权限设置,重点提到解决'PublicKeyRetrievalisnotallowed'错误并配置allowPublicKeyRetrieval。还涉及MyBatis中配置jdbc.properties和dataSource部分的代码示例。

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

使用mysql8.23

先检查 jdbc.properties的书写有无空格或者写错 或者 xml文件的书写
1.检查数据库权限设置

create user root@'%' identified by '12345678';
grant all privileges on *.* to root@'%' with grant option;

2.jdbc.properties配置检查(同样适用于mybatis 使用jdbc.properties文件设置不起作用)

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8
characterEncoding=utf-8
jdbc.user=root
jdbc.password=12345678

3.报错:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
增加

&allowPublicKeyRetrieval=true

变成

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8&allowPublicKeyRetrieval=true
characterEncoding=utf-8
jdbc.user=root
jdbc.password=12345678

4.mybatis.xml代码

<properties resource="jdbc.properties"/>
<dataSource type="POOLED"> <!-- 数据库连接池 -->
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/> <!-- 127.0.0.1:3306 可省略 -->
                <property name="username" value="${jdbc.user}"/>
                <property name="password" value="${jdbc.password}"/>
</dataSource>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值