I’m trying to read data from JDBC in Spark Scala. Below is the code written in 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()
I’m getting the following error message:
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
Could someone please let me know how to resolve this issue.
CodePudding user response:
The certificate used by your host is not trusted by java.
Solution 1 (Easy, not recommended)
Disabled certificate checking and always trust the certificate provided by server.
Add trustServerCertificate
property.
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()
Solution 2 (Difficult, Recommended)
Get the certificate and store it in the trusted store of your system.
Read more about it here