早 晚 2025-01-08 09:24 采纳率: 100%
浏览 74
已结题

DBeaver在新建数据库连接的时候出现"Public Key Retrieval is not allowed"怎么解决

DBeaver在新建数据库连接的时候出现下面这个问题该怎么解决

img

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2025-01-08 09:25
    关注

    上午好☀️☀️☀️️
    本答案参考通义千问

    当你在使用DBeaver创建数据库连接时遇到“Public Key Retrieval is not allowed”错误,这通常是因为MySQL服务器的安全设置不允许客户端检索公钥。这个安全措施是为了防止中间人攻击。

    要解决这个问题,你可以通过以下几种方法来调整MySQL服务器的配置或修改DBeaver的连接设置:

    1. 修改MySQL服务器配置

      • 打开MySQL配置文件(通常是my.cnfmy.ini)。
      • 在[mysqld]部分添加或修改以下行:
        [mysqld]
        skip-pam
        
      • 保存并关闭配置文件。
      • 重启MySQL服务以使更改生效。
    2. 修改DBeaver的连接设置

      • 打开DBeaver并选择你的数据库连接。
      • 进入“编辑连接”对话框。
      • 转到“驱动属性”选项卡。
      • 添加一个新的属性,键为allowPublicKeyRetrieval,值为true
      • 点击“应用”和“确定”保存更改。
    3. 使用SSH隧道

      • 如果你是通过SSH连接到数据库,可以尝试使用SSH隧道来绕过这个问题。
      • 在DBeaver中配置SSH隧道,并确保连接类型设置为SSH。

    以下是具体的步骤和示例代码:

    修改DBeaver的连接设置

    1. 打开DBeaver并选择你要编辑的数据库连接。
    2. 右键点击连接,选择“编辑连接”。
    3. 在“常规”选项卡中,点击“驱动属性”按钮。
    4. 添加一个新的属性,键为allowPublicKeyRetrieval,值为true
    5. 点击“应用”和“确定”。
    1. 打开DBeaver并选择你的数据库连接。
    2. 进入“编辑连接”对话框。
    3. 转到“驱动属性”选项卡。
    4. 添加一个新的属性,键为`allowPublicKeyRetrieval`,值为`true`。
    5. 点击“应用”和“确定”保存更改。
    

    示例代码(如果需要)

    如果你需要在连接字符串中直接添加参数,可以在连接字符串的末尾添加?allowPublicKeyRetrieval=true&useSSL=false

    例如:

    jdbc:mysql://localhost:3306/mydatabase?allowPublicKeyRetrieval=true&useSSL=false
    

    通过以上方法,你应该能够解决“Public Key Retrieval is not allowed”的问题。如果仍然有问题,请检查MySQL服务器的日志文件以获取更多信息。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月16日
  • 已采纳回答 1月8日
  • 创建了问题 1月8日