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

新装的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')".

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

show variales like '%char%';

在这里插入图片描述
可以看到 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了,如下:
在这里插入图片描述

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

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

再次添加后就可以啦。
在这里插入图片描述
所以大家最好在最初搭建zabbix数据库时加上这个参数,避免发生这样的问题。

猜你喜欢

转载自blog.csdn.net/weixin_44723434/article/details/89145881