遇到的MYSQL问题

1.

com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Public Key Retrieval is not allowed 这个异常意味着在初始化HikariCP连接池时,由于不允许公钥检索(Public Key Retrieval)而失败了。这通常发生在尝试建立与MySQL 8.0或更高版本数据库的连接时,而该数据库配置为使用缓存SHA2密码身份验证插件。

在MySQL 8.0及更高版本中,默认情况下,新创建的用户账户会使用caching_sha2_password作为身份验证插件,这要求客户端在连接时能够检索服务器的RSA公钥以进行安全连接。然而,出于安全考虑,一些客户端库默认不允许公钥检索,因此会抛出这个异常。

为了解决这个问题,你可以采取以下几种方法之一:

方法一:允许公钥检索

在连接字符串中添加allowPublicKeyRetrieval=true参数,允许客户端从服务器检索公钥。例如:

 

java复制代码

jdbc:mysql://your_host:your_port/your_database?allowPublicKeyRetrieval=true&useSSL=false

注意,useSSL=false是可选的,并且通常仅在你不打算使用SSL连接时才设置。在生产环境中,通常推荐使用SSL来加密数据库连接。

方法二:更改用户身份验证插件

如果你不希望允许公钥检索,你可以将MySQL用户的身份验证插件更改为mysql_native_password。这可以通过执行以下SQL命令完成:

 

sql复制代码

ALTER USER 'your_username'@'your_host' IDENTIFIED WITH 'mysql_native_password' BY 'your_password';
FLUSH PRIVILEGES;

替换your_usernameyour_hostyour_password为实际的用户名、主机和密码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值