zabbix中文乱码解决

问题描述:

在Zabbix界面设置中,已经调成中文语言,可能zabbix自身携带的字体还不够完美,出现如下乱码:省略
2. 上传“楷体 常规”字体到zabbix服务器中的指定目录中
目标目录:/usr/share/zabbix/fonts/  
  simkai.ttf    #楷体字体文件名,上传的楷体
3. 编辑zabbix字体定义文件
[root@zabbix ~]#  vim /usr/share/zabbix/include/defines.inc.php
将关键字 “graphfont” 改为“simkai”    //共2处:54行和103行

或者执行以下替换命令:
 sed -i  's/graphfont/simkai/g' /usr/share/zabbix/include/defines.inc.php
4. 刷新zabbix界面就可看到效果

以上方法只能解决部分显示中文乱码的问题

导入模板或者新建群组时,用到中文保存时会报错 (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

通过报错可以看出是sql执行出错,报错描述Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)可以看出是数据库字符集的问题。
解决方法如下:

1、去zabbix数据库主机查看数据库字符集。

MariaDB [(none)]> show variables like "%char%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
  -------------------------+----------------------------+
▽ character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
可以看到 character_set_database和character_set_server的字符集都不是utf8的所以需要进行设置。

2、修改数据库配置文件(默认在/etc/my.cnf),增加如下配置:

[mysql]
default-character-set=utf8
[mysqld]
character-set-server = utf8

3、重启数据库登录后再次执行show variables like '%char%';结果都是utf8了,如下:

MariaDB [(none)]> 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/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

4、重新导入zabbix数据模型。再次添加带中文的模版或者主机群组就可以啦。所以大家最好在最初搭建zabbix数据库时加上这个参数,避免发生这样的问题。还可以在创建数据库的时候指定字符集用如下语句创建:

mysql>create database zabbix  character set utf8;
posted @ 2019-05-20 14:55  cdw0724  阅读(768)  评论(0编辑  收藏  举报