This is a translation of the original English documentation page. Help us make it better.

2 Zabbixデータベースのキャラクターセットと照合の修正

MySQL/MariaDB

歴史的に、MySQLとその派生物はutf8mb3のエイリアスとして「utf8」を使用していました。これはMySQL独自の標準UTF8の3バイト実装であり、4バイトです。 MySQL8.0.28およびMariaDB10.6.1以降、「utf8mb3」キャラクターセットは非推奨になりました。ある時点でサポートが終了し、「utf8」は「utf8mb4」への参照になります。 Zabbix 6.0以降、「utf8mb4」がサポートされています。将来の問題を回避するために、「utf8mb4」を使用することを強くお勧めします。 'utf8mb4'に切り替えるもう1つの利点は、補足Unicode文字をサポートすることです。

Zabbix 6.0より前のバージョンはutf8mb4を認識しないため、utf8mb4変換を実行する前に、まずZabbixサーバーとDBスキーマを6.0.xにアップグレードしてください。

1.データベースのキャラクターセットと照合を確認してください。

実行例:

mysql> SELECT @@character_set_database, @@collation_database; +--------------------------+----------------------+ | @@character_set_database | @@collation_database | +--------------------------+----------------------+ | latin2 | latin2 _general_ci | +--------------------------+----------------------+

または:

mysql> SELECT @@character_set_database, @@collation_database; +--------------------------+----------------------+ | @@character_set_database | @@collation_database | +--------------------------+----------------------+ | utf8 | utf8_bin | +--------------------------+----------------------+

ご覧のとおり、キャラクターセットは「utf8mb4」ではなく、照合も「utf8mb4_bin」ではないため、修正する必要があります。

2.Zabbixを停止します。

3.データベースのバックアップコピーを作成します。

4.データベースレベルでキャラクターセットと照合を修正します。

alter database <データベース名> character set utf8mb4 collate utf8mb4_bin;

修正値の確認:

mysql> SELECT @@character_set_database, @@collation_database; +--------------------------+----------------------+ | @@character_set_database | @@collation_database | +--------------------------+----------------------+ | utf8mb4 | utf8mb4_bin | +--------------------------+----------------------+ 

5.スクリプトをロードして、テーブルおよび列レベルでの文字セットと照合を修正します。

mysql <データベース名> < utf8mb4_convert.sql

6.スクリプトを実行します。

 SET @ZABBIX_DATABASE='<データベース名>'; MariaDBの場合→set innodb_strict_mode = OFF;  CALL zbx_convert_utf8(); MariaDBの場合→set innodb_strict_mode = ON;  drop procedure zbx_convert_utf8;

'utf8mb4'はわずかに多くのディスクスペースを消費すると予想されることに注意してください。

7.エラーがない場合 - 修正したデータベースのバックアップコピーを作成することをお勧めします。

8.Zabbixを起動します。