Specified key was too long; max

2018-10-11  本文已影响0人  Sx_Ren

mysql> alter table PARTITION_KEYS convert to character set latin1;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

也可以先删除原来的元数据库,在重新建库:
drop database hive;
create database hive character set latin1;
然后再启动hive,通过mysql命令show create table TBLS;可以看到新生成的元数据信息表的编码都是latin1.

综述: hive命令出现Specified key was too long; max key length is 767 bytes 错误。是由于元数据的编码导致。需要更改元数据库编码。如果元数据库中已经有了数据,不能删除。那么就更改对应的表的编码。如果元数据库为空。那么就删除元数据库。再重新建立数据库,并更改编码,然后再让hive来建表。

更改表的编码方式:
ALTER
TABLE
tbl_name
CONVERT
TO
CHARACTER
SET charset_name;

上一篇下一篇

猜你喜欢

热点阅读