zabbix菜单出现问号乱码问题 


安装后zabbix,设置成中文后,发现菜单出现了好多的乱码,google之后才知道这与zabbix数据库字符集设置有关。

查看当前的默认字符集:

mysql> show create database zabbix;

+----------+-------------------------------------------------------------------+

| Database | Create Database                                                   |

+----------+-------------------------------------------------------------------+

| zabbix   | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET latin1 */ |

+----------+-------------------------------------------------------------------+

1 row in set (0.00 sec)


安装zabbix时在导入三个sql文件时,zabbix数据库中创建的表的字符集也是latin1

mysql> show variables like 'character%';

+--------------------------+----------------------------+

| Variable_name            | Value                      |

+--------------------------+----------------------------+

| character_set_client     | latin1                     |

| character_set_connection | latin1                     |

| character_set_database   | latin1                     |

| character_set_filesystem | binary                     |

| character_set_results    | latin1                     |

| character_set_server     | latin1                     |

| character_set_system     | utf8                       |

| character_sets_dir       | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)


以上有的字符集没有设置成utf8,所以在zabbix的菜单页面有的出现问号的原因。

解决:

1.备份数据库

  mysqldump -uzabbix -p123456 zabbix > zabbix.sql


2.修改备份的文件

  sed -i 's/latin1/utf8/g' zabbix.sql 


3.删除zabbix数据库

  mysql -uzabbix -p123456 -e "drop database zabbix"


4.设置mysql数据库字符集并重启

  vim /etc/my.cnf 加入下面一行

  default-character-set = utf8  

  重启: 

      /etc/init.d/mysqld restart


5.恢复数据库

   mysql -uzabbix -p123456 zabbix < zabbix.sql


再到页面查看时,一切都是正常的中文了,一个舒服啊。