前言:
在使用最新版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服务,告警消失。
标签:utf8mb4,数据库,字符集,中表,Zabbix,规则,排序 From: https://www.cnblogs.com/ytyzhn/p/16986560.html