我試圖連接從Azure磚PostgreSQL。
我用下麵的代碼來連接。
jdbcHostname = "測試"
jdbcPort = 1234
jdbcDatabase = " Test1 "
jdbcUrl = " jdbc: postgresql: / / {0}: {1} / {2}”。形式at(jdbcHostname, jdbcPort, jdbcDatabase)
連接成功
connectionProps ={“用戶”:“用戶名”,“密碼”:“通過!”}
現在,當我運行下麵的命令
accountDF = spark.read。jdbc (url = jdbcUrl表=“POC_TABLE”屬性= connectionProps)顯示(accountDF)
我得到以下錯誤。
org.postgresql.util。PSQLException:致命:SSL連接是必需的。請指定SSL選項並重試。
我怎麼解決這個錯誤。我已經啟用SSL在postgreSQL Azure門戶。
問候,
阿卡什
你好,
我在相同的。我困的是弄清楚如何上傳的密鑰和證書文件時所使用的JDBC驅動程序使用SSL。連接應該看起來像:
remote_table = spark.read.format (jdbc) \ .option(“司機”,司機)\ .option (“url”, url) \ .option(“數據表”,表)\ .option(“用戶”,用戶)\ .option(“密碼”,密碼)\ .option (“ssl”,真的)\ .options (“sslmode”、“verify-full”) \ .options (“sslcert”、“path_to_cert”) \ .options (“sslkey”、“path_to_key”) \ .load ()
但是我不知道如何或在哪裏上傳證書和密鑰,所以當我跑我得到以下錯誤:
org.postgresql.util。PSQLException: SSL錯誤:sun.security.validator。ValidatorException: PKIX路徑構建失敗:sun.security.provider.certpath。SunCertPathBuilderException:無法找到有效的認證請求的目標路徑
任何想法如何上傳證書和集群的關鍵這樣JDBC可以找到它?
你解決這個問題了嗎?我有同樣的問題
你好,
有不同的可能性:
——你可以上傳到集群使用wget如本文解釋說:
https://carto.com/help/tutorials/sql-direct-databricks/
——你可以將文件上傳到S3 bucket / Azure Blob然後讀他們
——你可以將它們導入使用“導入和探索數據”功能的磚歡迎頁麵
你好,感謝你的回複!我不能讓它工作從dbfs位置或司機,隻需要指出ssl-ca……我為它做了一個問題:https://forums.www.eheci.com/questions/48860/connect-to-azure-mysql-with-ssl-through-jdbc.html。我缺少一些選項嗎?
你得到了一個SSL錯誤。看來你是使用SSL模式“verify-full”需要你包括證書文件來驗證你的身份,不僅服務器的身份。我不熟悉MySQL但似乎“verify-full”不是一個受支持的選項。