zabbix 报错[Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)解决办法

ECS大优惠点我点我!!!红包+折扣,阿里云上云大礼包!!!

新装的zabbix,导入模板或者新建群组时,用到中文保存时会报错。
如下:

–Error in query [SELECT usrgrpid,name FROM usrgrp WHERE name='运维组' LIMIT 1] [Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=']
–Error in query [INSERT INTO usrgrp (name,users_status,gui_access,debug_mode,usrgrpid) VALUES ('运维组','0','0','0','13')] [Incorrect string value: '\xE8\xBF\x90\xE7\xBB\xB4...' for column 'name' at row 1]
–SQL描述式执行已失败: "INSERT INTO usrgrp (name,users_status,gui_access,debug_mode,usrgrpid) VALUES ('运维组','0','0','0','13')".

zabbix 报错[Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)解决办法_第1张图片通过报错可以看出是sql执行出错,报错描述Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)可以看出是数据库字符集的问题。
解决方法如下:
1、去zabbix数据库主机查看数据库字符集。

show variables like '%char%';

zabbix 报错[Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)解决办法_第2张图片
可以看到 character_set_databasecharacter_set_server的字符集都不是utf8的所以需要进行设置。
2、修改数据库配置文件(默认在/etc/my.cnf),增加如下配置:

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

重启数据库
3、登录后再次执行show variables like '%char%';结果都是utf8了,如下:
zabbix 报错[Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)解决办法_第3张图片

4、重新导入zabbix数据模型。

# mysql -uzabbix -ppassword  zabbix < schema.sql 
# mysql -uzabbix -ppassword  zabbix < images.sql           
# mysql -uzabbix -ppassword  zabbix < data.sql 

再次添加后就可以啦。
zabbix 报错[Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)解决办法_第4张图片
所以大家最好在最初搭建zabbix数据库时加上这个参数,避免发生这样的问题。

你可能感兴趣的:(MySQL,#,zabbix)