Hive 使用mysql 数据库乱码问题

1.错误情况 当 :

hive  >create table test(

> sno int comment ‘编号’,

 >sname String comment ‘姓名’

>)row format delimited fields terminated by '\t';

>desc test;


注释出现乱码

2.解决方案:

01.修改my.cnf文件 命令:vi /etc/my.cnf 或者sudo vi /etc/my.cnf (根据自己情况选择),进入文件添加如下文件

init_connect='SET collation_connection = utf8_unicode_ci'
  init_connect='SET NAMES utf8'
  character-set-server=utf8
  collation-server=utf8_unicode_ci
  skip-character-set-client-handshake

扫描二维码关注公众号,回复: 1447200 查看本文章


02.重启mysql 先退出msql客户端(quit;),然后重启 (sudo service mysqld restart)

03.进入数据库 metastore 中执行以下 5 条 SQL 语句 :

修改表字段注解和表注解
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;


直接在红线这里依次执行上面语句

04.验证:

show variables like 'char%';



show variables like "colla%";


3.数据测试:

hive >create table emp(

       >empno int comment '员工编号',
              >ename string comment '员工姓名') row format delimiteds fields terminated by '\t';hive

hive >desc emp;


乱码解决了。













猜你喜欢

转载自blog.csdn.net/qq_36567024/article/details/79210559