Loading

解决Zabbix数据库中表的字符集或排序规则不受支持的问题

前言:

在使用最新版zabbix(6.2)通过docker镜像来部署,结果页面告警“Zabbix数据库中表的字符集或排序规则不受支持***后面一堆数据表及字段”;

解决方案:

1:调整数据库字符集和排列规则

参考Zabbix官方文档Zabbix用户手册中第二章第二节内容:修复Zabbix数据库字符集与排序规则

https://www.zabbix.com/documentation/5.0/zh/manual/appendix/install/db_charset_coll 作参考;

首先停止Zabbix服务,在对数据库进行备份后,查询当前所使用的字符集和排序规则,执行sql指令:

 

SELECT @@character_set_database, @@collation_database;

根据返回结果得知,默认字符集为utf8mb4,排序规则utf8mb4_0900_ai_ci,当前字符集符合要求,但是排序规则需要变更。

调整数据库字符集(character)和排序规则(collation),执行sql指令:

alter database ‘zabbix’ character set utf8mb4 collate utf8mb4_bin;

请注意:
如涉及变更字符集,可能会导致数据库内容问题,需要将此库进行全量备份并进行离线调整,此部分内容未包含在本文之中

再次执行“查询当前所使用的字符集和排序规则”指令,返回结果已符合要求。

2:调整表排列规则

启动Zabbix服务,各项功能运行正常,警告并为消除。停止Zabbix服务。

执行sql指令,匹配zabbix库中排列规则为utf8mb4_0900_ai_ci的表并输出语句

SELECT CONCAT("ALTER TABLE ", TABLE_NAME," CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;") AS ExecuteTheString FROM information_schema.`COLUMNS` WHERE table_schema ="zabbix" AND COLLATION_NAME ="utf8mb4_0900_ai_ci";

输出语句类似于如下所示的若干(如上图);

将所有输出的语句复制并执行(如下图),即可完成对所有不符合要求表的排列规则调整。

启动Zabbix服务,告警消失。

posted @ 2022-12-16 09:44  袁与张  阅读(479)  评论(0编辑  收藏  举报