SQOOP:com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:未知数据库

时间:2016-08-11 04:42:25

标签: mysql database hadoop sqoop

我正在研究多节点设置(7个节点)上的SQOOP。

  1. CLIENT
  2. 名称节点
  3. SECONDARY NAMENODE
  4. 的JobTracker
  5. DATANODE 1
  6. DATANODE 2
  7. DATANODE 3
  8. 客户端节点上,我安装了hadoop,sqoop。 在其他节点上只安装了Hadoop。

    我正在使用 mySQL 。我创建了数据库 GAME_OF_THRONES 。我创建了表 kings_battles ,如下所示:

      

    创建表kings_battles(名称VARCHAR(50)NOT NULL,年份INT NOT   NULL,battle_number INT NOT NULL,attacker_king VARCHAR(50),   defender_king VARCHAR(50),attacker_1 VARCHAR(50),attacker_2   VARCHAR(50),attacker_3 VARCHAR(50),attacker_4 VARCHAR(50),   defender_1 VARCHAR(50),defender_2 VARCHAR(50),defender_3   VARCHAR(50),defender_4 VARCHAR(50),attacker_outcome VARCHAR(50),   battle_type VARCHAR(50),major_death TINYINT,major_capture TINYINT,   attacker_size INT,defender_size INT,attacker_commander VARCHAR(50),   defender_commander VARCHAR(50),夏天TINYINT,位置VARCHAR(50),   region VARCHAR(50),PRIMARY KEY(battle_number));

    但是当我从客户端节点执行执行sqoop export命令时,我收到错误:

    命令:

    sqoop export --connect jdbc:mysql://localhost/GAME_OF_THRONES --table
    kings_battles --username root --password hadoop123 --export-dir
    /input/5kings_battles.csv
    

    错误:

    Error : com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown database 'GAME_OF_THRONES'
    

    我检查过数据库和表是在客户端节点中使用创建的 mysql -u root -p

    如何解决此错误..如端口号,所需的IP地址。 谁能帮我吗。感谢。

2 个答案:

答案 0 :(得分:0)

您的数据库名称似乎是game_of_thrones而不是GAME_OF_THRONES

尝试:

sqoop export --connect jdbc:mysql://localhost/game_of_thrones --table kings_battles --username root --password hadoop123 --export-dir /input/5kings_battles.csv

为确保数据库名称的区分大小写,您可以使用命令检查所有数据库的列表 -

sqoop list-databases --connect jdbc:mysql://localhost/ --username root --password hadoop123

答案 1 :(得分:0)

您必须使用主机名而不是localhost更改连接链。

  

sqoop导出--connect   jdbc:mysql:/ip-172-31-75-48.ec2.internal/game_of_thrones --table   kings_battles-用户名root-密码hadoop123 --export-dir   /input/5kings_battles.csv

它会起作用,因为它是YARN的发行问题。

要找到您的主机名,只需在shell中写上主机名。