问题描述:
创建Hive表后,查看表结构发现中文注释乱码
解决方法:
- 进入mysql,执行如下命令
sql
use hive;
#修改表字段注解编码
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;
2.删除旧的Hive表,然后重新建表即可
如果还是不行,可能是mysql编码问题
解决办法:
- 编辑Mysql的配置文件,MySql的配置文件Windows下一般在系统目录下或者在MySql的安装目录下名字叫my.ini,Linux下一般是 /etc/my.cnf,/etc/mysql/my.cnf,如果找不到,可以用find命令查找。Linux用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,只需要使用如下命令即可
bash
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
- 在 [mysqld] 标签下加上两行
bash
default-character-set = utf8
character_set_server = utf8
- 在 [mysql] 标签下加上一行
bash
default-character-set = utf8
- [client]标签下加上一行
bash
default-character-set = utf8
- 重启mysql服务
在Linux下使用 service mysql restart**