文章目录
-
- Intro
- 原因和解决
-
- DBeaver 指定连接参数
Intro
我在使用 DBeaver 连接本地 mysql server 的时候,连接失败,报错:Public Key Retrieval is not allowed
。
原因和解决
据 https://blog.csdn.net/white0718/article/details/131790493 所讲:mysql server 从 8.0
开始默认使用 caching_sha2_password
插件做密码加密工作。
解决方案有两种
- 先用某个具有权限的账号,登录到 mysql server,然后在服务器端修改这个密码加密要用到的插件,改成之前的
mysql_native_password
,然后客户端照常登录即可。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
本方案pass,因为我现在就是 root 登录不了。
- 客户端登录的时候,需要额外指定一个参数的值:
allowPublicKeyRetrieval=true
不管你是在命令行通过mysql
去登录,还是在编程语言中用 JDBC url 连接,还是用像 DBeaver 这样的 GUI 工具去连接,都需要指定那个参数。以下以 DBeaver 为例:
DBeaver 指定连接参数
右击连接 –> 编辑连接:
驱动属性 服务器托管–> allowPublicKeyRetrieval=true –> 测试连接 –> (已连接)确定。
再看一下这个参数项:
allowPublicKeyRetrieval=true
Allows special handshake round-trip to get an RSA public key directly from server.
允许指定握手的来回服务器托管,用于从服务器端直接获取 RSA公钥。
连接成功后,再用 sql 命令查询一下 mysql server 版本:select version()
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
介绍 QT的HTTP模块封装的交互类,线程运行。使用时添加自己的业务逻辑即可 代码 头文件 /** * @file httpcontroller.h * @brief 云台相机的协议交互类 * @author xintong-zhou * @date 2024…