今回は、Zabbixインストール時のデータベース設定で照合順序がおかしいといわれる場合の対処法について解説します。
結論
各テーブルの照合順序を変える。
本編
Zabbix 4.4.6から、データベースの照合順序がutf8_binじゃないとはじかれるっぽいです。
Cannot connect to the detabase.Unsupported charset or collation for tables: dashboard_page, ha_node, httptest_tag, interface_snmp, item_parameter, item_tag, lld_override, lld_override_condition, lld_override_operation, lld_override_ophistory, lld_override_opperiod, lld_override_optag, lld_override_optrends, media_type_message, module, report, report_param, role, role_rule, script_param, service_problem_tag, service_tag, sla, sla_excluded_downtime, sla_service_tag, sysmaps_element_tag, task_data, task_result, token, valuemap, valuemap_mapping.
これらのテーブルの照合順序がおかしいっぽいので、以下のコードでそれを変更します。
ALTER TABLE zabbix.{テーブル名} CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
いちいち書いていくのはめんどくさいためPythonでコードを作成しました。
テーブル名とカンマのみのところをtextに入れてください。
text = "dashboard_page, ha_node, httptest_tag"
text = text.split(',')
for i in text:
i = i.strip()
print(f"ALTER TABLE zabbix.{i} CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;")
コードを実行するとSQLが作成されるので、実行してください。
実行には時間がかかる場合があるので気長に待ちましょう。
おわり。
コメント