首页 > 数据库 >mysql 连接出现 Public Key Retrieval is not allowed

mysql 连接出现 Public Key Retrieval is not allowed

时间:2024-03-22 16:00:14浏览次数:30  
标签:插件 mysql allowed Retrieval SSL Key MySQL 连接 客户端

在MySQL连接中出现“Public Key Retrieval is not allowed”错误,通常是因为在使用安全套接字层(SSL)连接时遇到了问题。这是因为MySQL 8.0及以上版本对安全性要求更高,特别是在使用密码插件如caching_sha2_password时,默认要求加密通信,并且不允许通过不安全的方式获取服务器的公钥。

解决这个问题的方法有以下几种:

允许公钥检索:
在客户端连接字符串或配置文件中设置 allowPublicKeyRetrieval=true。但请注意,这仅用于测试和临时解决方案,因为它会降低连接的安全性。在生产环境中应避免此做法,而是确保正确配置了SSL。
String url = "jdbc:mysql://yourserver:3306/database?useSSL=true&allowPublicKeyRetrieval=true&serverTimezone=UTC";
1
启用SSL并提供正确的信任证书:

在服务器端配置MySQL以支持SSL连接。
客户端需要有与服务器匹配的CA证书,将其添加到客户端的信任存储中。
更新客户端连接URL以包含SSL选项:useSSL=true 并可能需要指定 sslTrustStore 和 sslTrustStorePassword 参数。
更改MySQL服务器上的用户密码插件:
如果你希望保持高安全性但又想简化连接过程,可以将MySQL服务器上的用户密码插件改为 mysql_native_password。这样,客户端无需进行复杂的SSL配置即可连接,但这意味着放弃了新版本MySQL默认提供的更强密码安全策略。

执行如下命令来更改用户密码插件:

ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
1
2
请根据实际情况选择合适的方法解决问题,并始终优先考虑生产环境中的数据安全性。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/qq_33240556/article/details/136025312

标签:插件,mysql,allowed,Retrieval,SSL,Key,MySQL,连接,客户端
From: https://www.cnblogs.com/csjoz/p/18089692

相关文章

  • 微信公众号开发 - 扫描带参数二维码事件支持EventKey字符串传参
    $access_token=$this->access_token();//获取access_token$json_url='https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token='.$access_token;$scene_id="A123B";$curl_data='{"action_name&......
  • Redis第二课,1.set key value(设置对应的key和value)2.get key(得到value值)Redis全局
    Redis的启动 redis-cli目录1.setkeyvalue(设置对应的key和value)2.getkey(得到value值)Redis全局命令(支持很多的数据结构)3.keys(用来查询当前服务器匹配的key)生产环境/线上环境4.exist(判定key是否存在):判定key是否存在​编辑5.DEL  key 返回删掉的key......
  • Ubuntu部署Maxkey单点登录认证系统
    1:基础环境ubuntu-23.10-live-server-amd64.isoDockerversion24.0.5,build24.0.5-0ubuntu1MaxKey-v4.0.2-GA2:Git克隆远程仓库到本地gitclonehttps://gitee.com/dromara/MaxKey.git3:安装MaxKey3-1:进入/root/MaxKey/docker目录cd/root/MaxKey/docker3-2:查看/root......
  • BigKey问题
    当AOF日志写入了很多的大Key,AOF日志文件的大小会很大,那么很快就会触发AOF重写机制。当AOF写回策略配置了Always策略,如果写入是一个大Key,主线程在执行fsync()函数的时候,阻塞的时间会比较久,因为当写入的数据量很大的时候,数据同步到硬盘这个过程是很耗时的。......
  • vue3 项目接入keycloak
    之前都是vue2项目接入keycloak,网上表较多资料参考,vue3得比较少记录一下。这个前端项目是jetlinks社区版。引入了 dsb-norge/vue-keycloak-js插件, https://github.com/dsb-norge/vue-keycloak-js,还是要看官方得文档、示例。1.官方提供得示例比较全,我需要得是vue3typescri......
  • openai免费API-openai api key获取!开箱即用!
    最近又开始准备整些东西要用到apikey,才发现过我的大洋过期了!痛心......
  • [email protected] Permission denied (publickey)
    Git报错解决:[email protected]:Permissiondenied(publickey).-腾讯云开发者社区-腾讯云(tencent.com)Git报错解决:[email protected]:Permissiondenied(publickey).报错原因我查了很多资料,最后判定是在本地(或服务器上)没有生成SSH公钥解决方法第一步当你没有SSH公钥的时候,......
  • 巧用Array.prototype.keys()求和
    今天复习基础知识无意中在MDN上找到Array.prototype.keys()一个有意思的用法,在非数组对象上使用keys(),使用call读取this上的length属性,然后生成0~length-1的索引,并且不会实际访问,代码如下:1functionsum(num=0){2constarrayLike={3length:num+14......
  • QHotkey
    1.下载https://github.com/Skycoder42/QHotkey2.使用1#include<QHotkey>2#include<QApplication>3#include<QDebug>45intmain(intargc,char*argv[])6{7QApplicationapp(argc,argv);89QHotkeyhotkey(QKeySequ......
  • Redis第三弹,定时删除1.优先级队列(堆)2.基于时间轮实现的定时器​编辑Type指令(返回key对
    目录定时删除1.优先级队列(堆)2.基于时间轮实现的定时器​编辑Type指令(返回key对应的数据类型)redis的数据类型hsetkeyfieldvalue(这里是使用hash作为数据结构)小结定时删除redis并未实现定时器的方式,实现定时器的方式,实现过期key删除,若多个key过期,也可通过一个......