2016-07-17 9 views
0

次のコマンドを使ってSqoopを通してデータをインポートしようとしました。Sqoopを使ってmysqlからHadoopにデータをインポートしても失敗する

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に存在がわかりました。

mysql

私はstart-dfs.shを実行した後、mysql.sockがなくなってしまうと、私は、MySQLに接続することはできません。以下は

start-dfs.sh

な/etc/my.cnf構成です。

DATADIR =の/ var/libに/ mysqlの
ソケット=の/ var/libに/ mysqlの/にmysql.sock

+0

あなたの '/ etc/my.cnf'ファイルの内容を共有してください。このような 'socket =/var/lib/mysql/mysql.sock'のようなものがある[client]というセクションがあるはずです。このコマンドを実行できますか? 'mysql.server start' –

+0

私の/ etc/cnfはsocket =/var/lib/mysql/mysql.sockを設定しましたが、[client]ではなく[mysqld]セクションに設定しました。mysql.server startコマンドを実行すると、 'コマンドが見つかりません'というエラーが表示されます。 –

+0

私はあなたのMySQLが実行されていないと思う、同じ問題にこれらの答えのいくつかをしようとしましたか? http://stackoverflow.com/questions/4448467/cant-connect-to-local-mysql-server-through-socket-var-lib-mysql-mysql-sock 多分それは単なる許可の問題修正するのは非常に簡単です。 –

答えて

0
  • JDBC文字列は次のようになります。jdbc:mysql://localhost:3306/test_sqoop、ベストプラクティスは、localhostのサーバー名intesadを使用することですか127.0.0.1。このコマンドからサーバ名を得ることができますhostname -f。ので、jdbc文字列jdbc:mysql://servername:3306/test_sqoop - hostname -fコマンドの出力を置き換えてサーバー名を置き換える必要があります。
  • sqoopコマンドにパスワードを渡すには、-Pまたは--passwordまたは--connection-param-fileが必要です。 sqoop.my.cnfファイルから読み取られません。 - 使用方法を参照してくださいhere
関連する問題