コンテンツにスキップ

v6.0.11以降にアップグレードするとMySQL/MariaDBのデータベースアップグレードに失敗する

ZABBIX v6.0.11以降にアップグレードする際、MySQL/MariaDBのデータベースアップグレード処理で以下のようにYou do not have the SUPER privilege and binary logging is enabledメッセージが表示され失敗することがあります。

・
・
・
optional patches were found
starting automatic database upgrade
[Z3005] query failed: [1419] You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) [create trigger hosts_name_upper_insert before insert on hosts for each row set new.name_upper=upper(new.name)]
database upgrade failed
database could be upgraded to use primary keys in history tables

ZABBIX v6.0.11ではAPIのデータベースクエリがより効率的に処理されるようになり、そのためにデータベースのアップグレード中に決定的トリガーを作成する必要があります。

MySQLとMariaDBでは、バイナリロギングが有効でスーパーユーザー権限がなく、MySQL 構成ファイルにlog_bin_trust_function_creators = 1が設定されていない場合に上記エラーが発生します。一時的にlog_bin_trust_function_creators = 1を設定することでエラーを回避できます。

Step 1. MySQLのコンソールから以下のコマンドで変数を設定します。

mysql> SET GLOBAL log_bin_trust_function_creators = 1;

Step 2. ZABBIXのアップグレードを行います。

Step 3. アップグレードが完了したら、log_bin_trust_function_creatorsを無効に戻すことができます。

mysql> SET GLOBAL log_bin_trust_function_creators = 0;