我尝试使用以下命令通过 Sqoop 导入数据。
sqoop import -connect jdbc:mysql://localhost/test_sqoop --username root --table test
但我收到连接拒绝错误。
我发现我无法连接到 mysql 并收到此错误:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
而且我还发现如果不执行start-dfs.sh
,mysql.sock
存在于/var/lib/mysql/mysql中.sock
。
执行start-dfs.sh
后,mysql.sock
就会消失,无法连接到mysql。
下面是/etc/my.cnf配置。
datadir=/var/lib/mysql
套接字=/var/lib/mysql/mysql.sock
最佳答案
- jdbc 字符串应为:
jdbc:mysql://localhost:3306/test_sqoop
,最佳实践是使用服务器名称 intesadlocalhost
或127.0.0.1
。您可以通过此命令hostname -f
获取服务器名称。所以jdbc字符串应该是jdbc:mysql://servername:3306/test_sqoop
- 将服务器名称替换为hostname -f
的输出命令。 - 您需要
-P
或--password
或--connection-param-file
将密码传递给sqoop
命令。sqoop
不读取.my.cnf
文件。 - 请参阅用法here
关于mysql - 使用Sqoop从mysql导入数据到Hadoop但是失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38422130/