1.问题描述
安装sqoop成功之后,在Linux系统,运行sqoop命令:
sqoop list-databases --connect jdbc:mysql://hadoop:3306 --username root --password 123456
无法访问mysql数据库,报错:
18/12/30 11:55:58 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
at org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:875)
at org.apache.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:52)
at org.apache.sqoop.manager.CatalogQueryManager.listDatabases(CatalogQueryManager.java:57)
at org.apache.sqoop.tool.ListDatabasesTool.run(ListDatabasesTool.java:49)
at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
at org.apache.sqoop.Sqoop.main(Sqoop.java:252)
2.原因
hadoop02的/usr/share/java/ 下没有连接mysql的驱动jar包mysql-connector-java.jar。(注意一定要同名~)
3.解决
把mysql-connector-java.jar拷贝到hadoop02的/usr/share/java/下
4.测试
[root@hadoop02 java]# sqoop list-databases --connect jdbc:mysql://hadoop:3306 --username root --password 123456
Warning: /opt/cloudera/parcels/CDH-5.10.2-1.cdh5.10.2.p0.5/bin/../lib/sqoop/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
18/12/30 12:02:43 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6-cdh5.10.2
18/12/30 12:02:43 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
18/12/30 12:02:43 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
information_schema
hive
hue
metastore
mysql
oozie
performance_schema
scm
spark
sys
(通过~)