> 文章列表 > kettle链接mysql Public Key Retrieval is not allowed

kettle链接mysql Public Key Retrieval is not allowed

kettle链接mysql Public Key Retrieval is not allowed

kettle 报错信息页面:

出现 Public Key Retrieval 的场景可以概括为在禁用 SSL/TLS 协议传输切当前用户在服务器端没有登录缓存的情况下,客户端没有办法拿到服务器的公钥。具体的场景如下:

  1. 新建数据库用户,首次登录;
  2. 数据库的用户名、密码发生改变后登录;
  3. 服务器端调用 FLUSH PRIVELEGES 指令刷新服务器缓存。

针对上述错误,有如下的解决方案:

  1. 在条件允许的情况下,不要禁用 SSL/TLS 协议,即不要在 CLI 客户端使用--ssl-mode=disabled,或在 JDBC 连接串中加入 useSSL=false;
  2. 如果必须禁用 SSL/TLS 协议,则可以尝试使用 CLI 客户端登录一次 MySQL 数据库制造登录缓存;
  3. 如果必须禁用 SSL/TLS 协议,则可以通过增加如下参数允许客户端获得服务器的公钥:
  • 在 JDBC 连接串中加入 allowPublicKeyRetrieval=true 参数;
  • 在 CLI 客户端连接时加入--get-server-public-key 参数;
  • 在 CLI 客户端连接时加入--server-public-key-path=file_name 参数,指定存放在本地的公钥文件。

kettle 配置页面如下解决问题:

出处:MySQL 8.0的Public Key Retrival错误,毫无规律可言怎么破? - 腾讯云开发者社区-腾讯云