Sqoop import всегда пытается подключиться к локальному mysql, даже если в параметре connect указан IP удаленного сервера. - PullRequest
0 голосов
/ 29 апреля 2018

Sqoop import всегда пытается подключиться к локальному mysql, даже если IP-адрес удаленного сервера указан в параметре connect

Я попробовал ниже подключиться с помощью MySQL к удаленному серверу MySQL, и он работает нормально. Я могу исследовать таблицы.

mysql -u anuser -h 1.133.23.58 -p

при попытке использования кода ниже он пытается подключиться к локальному экземпляру MySQL с помощью «anuser», который является пользователем для удаленного экземпляра MySQL.

sqoop-import -m 1 
--driver com.mysql.jdbc.Driver \\
--connect jdbc:mysql://1.133.23.58:3306/misp \ 
--username anuser \
--password password \
--query "select id, CURDATE() as ref_date, v, score, type, feed from AnDomains where \$CONDITIONS" \
--split-by id \
--hive-drop-import-delims \
--hive-import \
--hive-table testdb.andomains \
--target-dir andomains   

но я могу успешно подключиться к БД sqlserver и перенести данные в таблицы кустов

Ошибка MSG:

18/04/29 15:05:15 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
18/04/29 15:05:15 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
18/04/29 15:05:15 INFO tool.BaseSqoopTool: Using Hive-specific delimiters for output. You can override
18/04/29 15:05:15 INFO tool.BaseSqoopTool: delimiters with --fields-terminated-by, etc.
18/04/29 15:05:16 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
18/04/29 15:05:16 INFO tool.CodeGenTool: Beginning code generation
18/04/29 15:05:16 ERROR manager.SqlManager: Error executing statement: java.sql.SQLException: Access denied for user 'anuser'@'120.0.0.1' (using password: YES)
java.sql.SQLException: Access denied for user 'ansuser'@'120.0.0.1' (using password: YES)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4187)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4119)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:927)

1 Ответ

0 голосов
/ 29 апреля 2018

Вам необходимо предоставить доступ пользователю с хоста, с которого он запрашивает соединение. Выполните нижеприведенное в командной строке mysql:

GRANT ALL PRIVILEGES ON *.* TO 'ansuser'@'120.0.0.1' identified by 'passwordhere';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...