【问题标题】:Getting error on connecting to a local SQL Server database to databricks via JDBC connection通过 JDBC 连接将本地 SQL Server 数据库连接到数据块时出错
【发布时间】:2020-06-28 14:43:02
【问题描述】:

基本上,我正在尝试使用 JDBC 连接从数据块连接到本地计算机上的 SQL Server 数据库。我正在按照databricks website. 上显示的文档中提到的程序进行操作

我使用了网站上提到的以下代码:

jdbcHostname = "localhost"
jdbcDatabase = "TestDB"
jdbcPort = "3306"

jdbcUrl = "jdbc:mysql://{0}:{1}/{2}".format(jdbcHostname, jdbcPort, jdbcDatabase)
connectionProperties = {
    "jdbcUsername" : "user1",
    "jdbcPassword" : "pass1",
    "driver" : "com.microsoft.sqlserver.jdbc.SQLServerDriver"
     }

pushdown_query = "SELECT * FROM dbo.customer"
df = spark.read.jdbc(url=jdbcUrl, table=pushdown_query,properties=connectionProperties)
display(df)

但是我收到了这个错误

IllegalArgumentException:要求失败:驱动程序无法打开 JDBC 连接。查看网址:jdbc:mysql://localhost:3306/TestDB

谁能解释为什么会这样?我该如何解决这个错误?

【问题讨论】:

    标签: sql-server apache-spark pyspark databricks sqljdbc


    【解决方案1】:

    通常3306 用于mysql 数据库的端口。

    尝试为 Sql server databases 使用 1433 端口。

    在 jdbc url 中使用 sqlserver 代替 mysql jdbcUrl = "jdbc:sqlserver://{0}:{1};databaseName={2}"


    Example Jdbc url:

    jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks

    【讨论】:

    • com.microsoft.sqlserver.jdbc.SQLServerException: 端口号 1433/TestDB 无效。
    • 试试jdbc:sqlserver://localhost:1433;databaseName=TestDB
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2016-05-03
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多