You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署在Kubernetes上的MySQL RSA公钥连接问题求助

解决Azure Databricks写入AKS部署的MySQL时RSA公钥读取失败问题

针对你遇到的java.sql.SQLTransientConnectionException: Could not connect to address=(host=xx.xxx.xxx.xx)(port=3306)(type=master) : Could not read server RSA public key from file : serverRsaPublicKeyFile=public_key.pem错误,可按以下步骤排查解决:

  • 修正配置文件修改方式
    你当前用echo >的方式会覆盖之前的配置内容,第二次执行会丢失ssl-key配置,应改用>>追加:

    echo "ssl-key=/bin/private-key.pem" >> /bin/mysql_config
    echo "ssl-cert=/bin/public-key.pem" >> /bin/mysql_config
    

    同时要确认MySQL实际加载的配置文件路径,执行命令查看默认配置文件位置:

    mysqld --help --verbose | grep -A 1 "Default options"
    

    确保你修改的是MySQL实际读取的配置文件,而非自定义的无效路径。

  • 修复密钥文件权限与归属
    MySQL进程需要具备密钥文件的读取权限,执行以下命令调整:

    chmod 600 /bin/private-key.pem /bin/public-key.pem
    chown mysql:mysql /bin/private-key.pem /bin/public-key.pem
    

    容器内MySQL通常以mysql用户运行,权限或归属错误会导致文件无法读取。

  • 明确指定RSA公钥路径
    在MySQL配置中添加server_rsa_public_key参数,强制指定公钥文件的绝对路径:

    echo "server_rsa_public_key=/bin/public-key.pem" >> /bin/mysql_config
    

    这能避免MySQL自动查找公钥时的路径匹配问题。

  • 重启MySQL服务加载新配置
    容器内重启MySQL服务,确保修改后的配置生效:

    # 若容器使用systemd管理服务
    systemctl restart mysqld
    # 若为直接运行的进程,先终止再重启
    ps aux | grep mysqld | grep -v grep | awk '{print $2}' | xargs kill
    mysqld --defaults-file=/bin/mysql_config &
    
  • 调整Databricks JDBC连接配置
    在Databricks的JDBC URL中显式指定SSL相关参数,可直接传入公钥内容(避免路径依赖):

    # 方式1:指定公钥文件路径(需确保Databricks可访问该路径,容器内场景更推荐方式2)
    jdbc_url = "jdbc:mysql://xx.xxx.xxx.xx:3306/your_database?useSSL=true&serverRSAPublicKeyFile=/bin/public-key.pem"
    
    # 方式2:直接传入公钥字符串(去除PEM头部尾部,换行替换为空格)
    public_key_content = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
    jdbc_url = f"jdbc:mysql://xx.xxx.xxx.xx:3306/your_database?useSSL=true&serverRSAPublicKey={public_key_content}"
    

内容的提问来源于stack exchange,提问作者Sergio92

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 06:26:18