MySQL链接错误

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

package com.spark

import java.sql.Connection
import java.sql.PreparedStatement
import java.sql.DriverManager


object JDBCDemo {
def main(args: Array[String]): Unit = {
val str = "hadoop spark java scala hbase hive sqoop hue   tez atlas datax grinffin zk kafka"
val result = str.split("\\s+")
.zipWithIndex

val username = "root"
val passwd = "12345678"
val url = "jdbc:mysql://node101:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false"

var conn: Connection = null
var stmt: PreparedStatement = null
val sql = "insert into wordcount values (?,?)"
try {
conn = DriverManager.getConnection(url, username, passwd)
stmt = conn.prepareStatement(sql)

result.foreach { case (word, count) =>
stmt.setString(1, word)
stmt.setInt(2, count)
stmt.executeUpdate()
}
}catch {
case e: Exception => e.printStackTrace()
}finally {
if(stmt!=null){
stmt.close()
}
if(conn!=null){
conn.close()
}
}

}
}

版本5.27
如果收到SQLException:连接被拒绝或连接超时,或特定于MySQL的CommunicationsException:意味着与数据库通信连接失败
原因可能有以下几种情况:
● JDBC URL中的IP地址或主机名错误。
● 本地DNS服务器无法识别JDBC URL中的主机名。
● JDBC URL中的端口号丢失或错误。
● 数据库服务器已关闭。
● DB服务器不接受TCP / IP连接。
● 数据库服务器已用尽连接。
● Java和DB之间的某种事物正在阻止连接,例如防火墙或代理。
解决方法:
检查以上造成问题的原因并对应解决
● 使用ping验证并测试它们。
● 刷新DNS或在JDBC URL中使用IP地址。
● 根据MySQL DB的my.cnf进行验证。
● 启动数据库。
● 验证是否在没有–skip-networking选项的情况下启动了mysqld。
● 重新启动数据库,并相应地修复代码,以最终关闭连接。
● 禁用防火墙和/或配置防火墙/代理以允许/转发端口。
经排查是主机名写错了,应该是node103写成了node101,修改之后即可与mysql建立连接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值