gpt4 book ai didi

mysql - 无法使用 jdbc 和 Spark 连接器从 databricks 群集连接到 Azure Database for MySQL 服务器

转载 作者:行者123 更新时间:2023-12-03 02:43:11 25 4
gpt4 key购买 nike

我正在尝试使用 databricks 群集连接到 MySQL 服务器的 Azure 数据库。我尝试使用下面描述的两种方法-

  1. 使用jdbc

    val jdbcHostname = "<serverName>.mysql.database.azure.com"
    val jdbcPort = 3306
    val jdbcDatabase = "<db>"
    val jdbcUrl = s"jdbc:mysql://${jdbcHostname}:${jdbcPort}/${jdbcDatabase}?useSSL=true&requireSSL=false"

    import java.sql.DriverManager
    val connection = DriverManager.getConnection(jdbcUrl, "<user>@<serverName>", "<password>")

但我收到错误消息 "Client with IP address 'SOME_IP_ADDRESS' is not allowed to connect to this MySQL server"

我将此 IP 添加到 Azure Database for MySQL 服务器的防火墙规则中,然后就可以访问了。但每次集群重新启动时,IP 地址都会发生变化并引发错误。我不想"Allow access to Azure services"在 mySQL 服务器中,因为它也将允许来自另一个订阅的用户。

  • 使用 Spark 连接器 - 下载“com.microsoft.azure:azure-sqldb-spark:1.0.2”jar

    val config = Config(Map(
    "driver" -> "org.mariadb.jdbc.Driver",
    "url" -> "<serverName>.mysql.database.azure.com:3306",
    "databaseName" -> "<db>",
    "dbTable" -> "<dbtable>",
    "user" -> "<user>@<serverName>",
    "password" -> "<password>"
    ))
    val data = spark.read.sqlDB(config)
  • 但它抛出错误说 "java.lang.IllegalArgumentException: requirement failed: The driver could not open a JDBC connection. Check the URL: jdbc:sqlserver://<serverName>.mysql.database.azure.com:3306"

    我也尝试过这种方式-

        val df = spark.read.format("jdbc").option("driver", "org.mariadb.jdbc.Driver")
    .option("url", "jdbc:mysql://<serverName>.mysql.database.azure.com:3306/<db>?useSSL=true&requireSSL=false")
    .option("databaseName", "<db>")
    .option("dbTable", "<dbtable>")
    .option("user", "<user>@<serverName>")
    .option("password", "<password>")
    .load()

    但它也会抛出错误 "Client with IP address 'SOME_IP_ADDRESS' is not allowed to connect to this MySQL server"

    最佳答案

    不支持将 MySQL 的 Azure SQL 数据库作为 Azure Databricks 中的数据源。它不在列表中。

    enter image description here

    请引用:Data sources for Azure Databricks以及 @Jim Xu 为您提供的文档。

    希望这有帮助。

    关于mysql - 无法使用 jdbc 和 Spark 连接器从 databricks 群集连接到 Azure Database for MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60088273/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com