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

使用Databricks通过AWS证书连接RDS MySQL遇PKIX路径错误

解决Spark JDBC连接RDS MySQL的PKIX证书路径错误

排查与解决步骤

1. 验证JKS证书文件的有效性

  • 用keytool命令检查JKS中是否正确导入了RDS global-bundle的所有CA证书:
    keytool -list -keystore rds_ca.jks -storepass <你的密码>
    
    确认输出中包含RDS对应的CA证书条目(如Amazon RDS Root CA)。
  • 转换证书时,确保将global-bundle.pem中的全部证书导入JKS,而非单个。正确的转换命令示例:
    keytool -importcert -file global-bundle.pem -keystore rds_ca.jks -storepass <你的密码> -alias rds-global-ca -trustcacerts
    
    若pem包含多个证书,需重复执行命令并修改alias,或使用批量导入工具完成。

2. 修正DBFS路径的访问格式

JDBC驱动无法直接识别dbfs://协议,需改用Databricks集群本地挂载的DBFS路径格式:
将URL中的trustCertificateKeyStoreUrl=dbfs:/FileStore/tables/rds_ca.jks替换为:

trustCertificateKeyStoreUrl=file:/dbfs/FileStore/tables/rds_ca.jks

同时用dbutils确认文件存在:

dbutils.fs.ls("dbfs:/FileStore/tables/")

3. 检查JDBC URL参数与驱动版本

  • 确保URL参数完整且正确,推荐添加requireSSL=true强制SSL连接:
    jdbc:mysql://<rds-host>:3306/<database>?useSsl=true&requireSSL=true&verifyServerCertificate=true&trustCertificateKeyStoreUrl=file:/dbfs/FileStore/tables/rds_ca.jks&trustCertificateKeyStorePassword=<你的密码>
    
  • 确认使用的MySQL Connector/J版本为8.0.x及以上,旧版本可能存在证书兼容性问题。可通过Databricks集群的「库」功能安装最新驱动。

4. 配置JVM全局信任库(备选方案)

如果JDBC URL参数不生效,可在Databricks集群的Spark配置中添加JVM参数,让整个集群进程使用指定的信任库:

spark.driver.extraJavaOptions -Djavax.net.ssl.trustStore=/dbfs/FileStore/tables/rds_ca.jks -Djavax.net.ssl.trustStorePassword=<你的密码>
spark.executor.extraJavaOptions -Djavax.net.ssl.trustStore=/dbfs/FileStore/tables/rds_ca.jks -Djavax.net.ssl.trustStorePassword=<你的密码>

5. 验证RDS证书链完整性

用openssl命令检查RDS服务器的证书链,确认根CA与你导入的一致:

openssl s_client -connect <rds-host>:3306 -showcerts

查看输出中的证书链,确保最顶层的根CA存在于你的JKS信任库中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 20:38:16