我是hadoop的新手。 我在cloudera环境中练习hadoop。 我正在尝试使用mySql(预先安装在cloudera中)连接到远程服务器,但它没有连接。
实际上我的主要目的是通过使用Sqoop从远程服务器导入数据来运行作业,并将其存储在HDFS位置。但是得到错误
Communication link failure
所以,首先我尝试连接mySql的帮助,但这里也是 因为无法连接到服务器而收到错误。
mysql -u "username" -h "xxx.xxx.xx.xxx(ip address)" -p
它没有连接。提供错误消息
Error: Unable to connect to mysql server "xxx.xx.xxx.xx"
如果我尝试连接到localhost,它运行良好,
mysql -u root -p
我是否需要对配置文件进行任何更改以连接到远程服务器,以便通过Sqoop将数据从数据库导入HDFS。
任何人都可以建议我如何通过使用来自centOs的mysql连接到远程服务器 - Cloudera环境。
答案 0 :(得分:0)
如果我理解正确:
mysql -u root -p
本地连接到MySQL服务器时,它可以正常工作如果这是您的问题,您很可能需要编辑MySQL服务器上的文件/etc/mysql/my.cnf
并在bind-address=[public_ip]
中添加公共服务器IP并重新启动MySQL。
您还需要确保允许您的用户远程访问服务器,或者您必须创建远程用户。您可以从以下位置查看用户及其来源:
SELECT Host, User FROM mysql.user;
最后,您的服务器上可能有防火墙(如ufw
),阻止您远程访问MySQL端口(默认情况下为3306
)。如果是这种情况,则需要允许来自防火墙中远程服务器的连接。