2016-07-17 7 views
0

Ich habe versucht, Daten über Sqoop mit dem folgenden Befehl zu importieren.Verwenden Sie Sqoop, um Daten von Mysql nach Hadoop zu importieren, aber fehlgeschlagen

sqoop import -connect jdbc:mysql://localhost/test_sqoop --username root --table test 

aber ich habe die Verbindung ablehnen Fehler.

Und ich fand heraus, dass ich nicht zu mysql verbinden und bekam diesen Fehler:

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' 

Und ich fand auch heraus, wenn ich nicht start-dfs.sh ausführen kann, existiert mysql.sock in /var/lib/mysql/mysql.sock.

mysql

Nachdem ich start-dfs.sh ausgeführt, mysql.sock verschwunden sein würde, und ich kann nicht auf mysql verbinden.

start-dfs.sh

Im Folgenden finden Sie /etc/my.cnf Konfiguration.

datadir =/var/lib/mysql
socket =/var/lib/mysql/mysql.sock

+0

Könnten Sie bitte den Inhalt Ihrer '/ etc/my.cnf' Datei teilen? Es sollte eine Sektion namens [client] geben, die etwas wie 'socket =/var/lib/mysql/mysql.sock' hat. Können Sie diesen Befehl ausführen? 'mysql.server start' –

+0

Meine/etc/cnf hat socket =/var/lib/mysql/mysql.sock konfiguriert, aber nicht im Abschnitt [client], sondern [mysqld] .Und wenn ich den Befehl mysql.server starte, Es wird der Fehler 'Befehl nicht gefunden' angezeigt. –

+0

Ich denke, dass Ihr MySQL nicht läuft, haben Sie versucht, einige dieser Antworten auf das gleiche Problem zu tun? http://stackoverflow.com/questions/4448467/cant-connect-to-local-mysql-server-through-socket-var-lib-mysql-mysql-sock Vielleicht ist es nur eine Frage der Berechtigungen oder etwas sehr einfach zu beheben. –

Antwort

0
  • jdbc String sein sollte: jdbc:mysql://localhost:3306/test_sqoop, Best Practice ist Servername intesad von localhost zu verwenden oder 127.0.0.1. Sie können den Servernamen von diesem Befehl hostname -f abrufen. so sollte jdbc Zeichenfolge jdbc:mysql://servername:3306/test_sqoop sein - ersetzen Sie den Server-Namen durch out Put von hostname -f Befehl.
  • Sie benötigen -P oder --password oder --connection-param-file, um das Passwort an den Befehl zu übergeben. liest nicht von .my.cnf Datei. - siehe Verwendung here
Verwandte Themen