linux 报错返回网络不通_Windows上运行不报错,在Linux上就报错问题排查

当在Windows上运行Kettle无误,但在Linux环境下遇到'Communicationslinkfailure'错误时,通常是因为网络链路不通。解决方案包括:1) 使用数据库客户端验证数据库的可达性和连通性;2) 使用telnet命令检查Linux机器到数据库的端口是否开放;3) 检查并可能关闭或调整Linux防火墙设置。在云环境中,还需考虑云服务商的防火墙配置。
摘要由CSDN通过智能技术生成

前情:

这是一位群友的问题,有一定代表性,总结一下。

问题描述:

Windows上运行不报错,在Linux上就报错,

报错信息:插入/更新 - Communications link failure

1bb8efc9902398548d219644e9166266.png

报错异常

首先这个错误是当前环境的Kettle连接数据库时网络链路不通,连接失败了。由此来确认一下问题:

1、 使用数据库客户端工具,尝试访问这个数据库,确定数据库本身的可用性。以及对外可连通性。

2、 在这台不通的Linux机器上执行命令:telnet IP 3306,以确定本台机器到数据库之间的连通性,(这也是一个确定到某台机器某个端口的有效连通性的常用方法,不能使用Ping命令确定,Ping只能确定到达,但某些端口通不通不能确定),如下图表示通。

9e8efb60a2b266c57204dc9726842d3e.png

端口通畅

如果出现下图类似这样表示不通:

1f5162a033fa74842074a7d4a0776418.png

不通

不通在Kettle执行中就会报:Communications link failure

3、 排查Linux机器的防火墙,以centos为例。

防火墙相关命令:

  • 查询状态
  • systemctl status firewalld.service
  • 打开
  • systemctl start firewalld.service
  • 停止
  • systemctl stop firewalld.service
  • 永久关闭
  • systemctl disable firewalld.service

下图表示开启中:

b55f41bbf3ae50d4b90d2b89bf0f5c70.png

防火墙开启中

下图表示关闭状态:

bb0cd11d87f48e31207b138f14549c15.png

关闭中

关闭后再尝试telnet IP 3306 ,以及Kettle执行,此时可以正确执行了。

总结:Linux一般初始的防火墙都是打开的,所以都需要关闭或者增加相应的策略,如果是一些云环境的机器,比如阿里云,要在相应的控制台中进行设置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值