我正在尝试使用sqoop从mysql导入表数据。然而,当我这样做时,我得到了一个糟糕的握手错误。许多在线论坛指出问题出在mysql conf文件上。但是,我在conf文件中没有看到bind address条目。这是我在尝试运行命令时看到的错误 sqoop list-databases --connect jdbc:mysql://localhost/hadoop --username hadoop -P
. hadoop是我试图连接的数据库,用户名也是hadoop。
18/04/24 17:06:53 INFO manager.MySQLManager: Preparing to use a MySQL
streaming resultset.
18/04/24 17:06:53 INFO tool.CodeGenTool: Beginning code generation
18/04/24 17:06:53 ERROR manager.SqlManager: Error executing statement:
java.sql.SQLException: Communication link failure: Bad handshake
java.sql.SQLException: Communication link failure: Bad handshake
at com.mysql.jdbc.MysqlIO.init(Unknown Source)
at com.mysql.jdbc.Connection.connectionInit(Unknown Source)
at com.mysql.jdbc.jdbc2.Connection.connectionInit(Unknown Source)
at com.mysql.jdbc.Driver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:904)
1条答案
按热度按时间zsbz8rwp1#
如果您已经提到serverip上的一个数据库,即“连接”,则不能使用“列表数据库”jdbc:mysql://localhost/hadoop”。尝试使用相同的sqoop调用命令,但不使用数据库名称“hadoop”,然后调用“list database”。还要记住,这是在sqoop调用中使用驱动程序,但首先您或您的系统管理员必须将特定的驱动程序放在“lib”文件夹的sqoop目录中。希望这有帮助!