hue的历史查询记录querys乱码问题解决

时间:2023-03-10 02:11:55
hue的历史查询记录querys乱码问题解决

hue的历史查询记录querys乱码问题解决:

hue的历史查询记录querys乱码问题解决
master1中配置文件/home/hadoop/.versions/hue-3.10.0/desktop/conf/hue.ini

可以看到连接的是mysql数据库

[[database]]
#options='{"timeout": 60}'
host=localhost
port=
engine=mysql
user=hue
password=hue
name=hue
[hadoop@uhadoop-bwgkeu-master1 conf]$ ps -ef|grep mysql
root Jun28 ? :: /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql Jun28 ? :: /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/lib/mysql/uhadoop-bwgkeu-master1.err --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock --port=
hadoop : pts/ :: grep mysql

分析:在hue的库desktop_document表中可以看到中文是正常的,查到页面中就乱码了,可能是在查询中某个字段出现问题了

终极解决办法:
1.修改/etc/my.cnf配置
修改clent,mysqld,mysql,mysql_safe部分都添加default-character-set=utf8

[client]
port =
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8 [mysqldump]
quick
max_allowed_packet = 16M [mysql]
no-auto-rehash
default-character-set=utf8 [myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M [mysqlhotcopy]
interactive-timeout [mysqld]
port =
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache =
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
server-id =
log-bin=mysql-bin
binlog_format=MIXED
binlog-do-db=hive
expire_logs_days=
auto-increment-increment=
auto-increment-offset=
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
default-character-set=utf8 [mysqld_safe]
default-character-set=utf8

如果报错mysql无法启动,则可以在mysqld部分替换成如下配置:

character-set-server=utf8

重启数据库service mysqld restart
可以看到编码都变成了utf8

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
rows in set (0.00 sec)

2.将hue库导出,然后修改hue的库编码(默认是latin1)和所有表所有字段的编码

mysql> show create database hue;
+----------+--------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------+
| hue | CREATE DATABASE `hue` /*!40100 DEFAULT CHARACTER SET utf8 */ |

3.再次将数据库导入,重启hue服务,新建的查询就能正常显示了

hue的历史查询记录querys乱码问题解决