【问题标题】:Unable to connect to a database using JDBC within Spark with Scala无法在带有 Scala 的 Spark 中使用 JDBC 连接到数据库
【发布时间】:2022-01-23 08:31:26
【问题描述】:

我正在尝试从 Spark Scala 中的 JDBC 读取数据。下面是用 Databricks 编写的代码。

val df = spark
  .read
  .format("jdbc")
  .option("url", <connection-string>)
  .option("dbtable", <table-name>)
  .option("user", <username>)
  .option("password", <password>)
  .option("ssl", True)
  .option("sslmode", "require")
 .load()

我收到以下错误消息:

java.sql.SQLNonTransientConnectionException: Could not connect to 10.6.8.86:3306 : PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

谁能告诉我如何解决这个问题。

【问题讨论】:

  • Spark 前多余的括号是错字吗?这只是一个细节……
  • 只是一个错字。谢谢。

标签: java scala apache-spark jdbc databricks


【解决方案1】:

您的主机使用的证书不受 java 信任。

解决方案 1(简单,不推荐)

禁用证书检查并始终信任服务器提供的证书。

添加trustServerCertificate 属性。

val df = (spark
  .read
  .format("jdbc")
  .option("url", <connection-string>)
  .option("dbtable", <table-name>)
  .option("user", <username>)
  .option("password", <password>)
  .option("ssl", True)
  .option("trustServerCertificate", True)
  .option("sslmode", "require")
 .load()

解决方案 2(困难,推荐)

获取证书并将其存储在系统的受信任存储中。

在此处了解更多信息

【讨论】:

  • 感谢您的回答。
猜你喜欢
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多