远程计算机连接MySQL,从远程计算机到MySql的JDBC连接

我已在Linux VM(Windows桌面)中安装了MySql,我试图从在父Windows操作系统中运行的Spark应用程序连接到MySql。连接时,我遇到错误...

这是示例代码

def main(args: Array[String]) {

val conf = new SparkConf()

.setAppName("LoadMySql")

.setMaster("local[*]")

.set("spark.sql.warehouse.dir", "file:///C:/temp")

val spark = SparkSession

.builder

.config(conf)

.getOrCreate()

val option = Map("url" -> "jdbc:mysql://VMIP:3306/TestDB", "dbtable" -> "Users", "user" -> "root", "password" -> "*****", "driver" -> "com.mysql.jdbc.Driver")

val dataRDD = spark.sqlContext.read.format("org.apache.spark.sql.jdbc").options(option).load()

}

错误...

Exception in thread "main" java.lang.NullPointerException

at org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD$.resolveTable(JDBCRDD.scala:158)

at org.apache.spark.sql.execution.datasources.jdbc.JDBCRelation.(JDBCRelation.scala:117)

at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:53)

at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:315)

at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:149)

at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:122)

at com.Lab.SparkAPI.LoadMySql$.main(LoadMySql.scala:29)

at com.Lab.SparkAPI.LoadMySql.main(LoadMySql.scala)

我已经更改了/etc/mysql/mysql.conf.d/mysqld.cnf中的bind-address属性。

我已经尝试了几种绑定地址选项-linux VM IP,0.0.0.0并对其进行完全注释。

到目前为止,所有选项都无效。

我的猜测是,我的Windows应用程序无法访问在VM中运行的MySql。

有人可以帮助我解决这个问题吗?

谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值