在hive中創建表,加上COMMENT後面的中文註釋;此時如果直接desc formatted tableName會發現,註釋的內容是一串問號。這是因爲hive初始化安裝後,在mysql裏面創建的庫和表都是以latin1存儲的。
此時如果直接在/etc/my.cnf下配置mysql的默認編碼爲utf-8,會發現進入hive命令行後,create database,drop database等操作都會報錯誤。
正確的解決辦法應該是現在mysql中執行以下命令:
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8 ;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
然後重新進入hive命令行,刪除之前的庫和表,然後重新創建就ok了。需要注意的是hive安裝目錄下的conf/hive-site.xml配置與mysql連接的jdbc時必須在後面加上參數&characterEncoding=UTF-8,本人就是忘記加了這個,其他的都改成了utf-8還是不行