[comment]: # translation:outdated

[comment]: # ({609a8e9d-609a8e9d})
# 2 Riparazione del set di caratteri e delle regole di confronto del database Zabbix

[comment]: # ({/609a8e9d-609a8e9d})

[comment]: # ({fd2a288b-25eef83a})
#### MySQL/MariaDB

Storicamente, MySQL e i suoi derivati hanno usato 'utf8' come alias di utf8mb3, l'implementazione a 3 byte di MySQL dello standard UTF8, che invece è a 4 byte.
A partire da MySQL 8.0.28 e MariaDB 10.6.1, il set di caratteri 'utf8mb3' è
deprecato e a un certo punto il suo supporto verrà rimosso, mentre 'utf8'
diventerà un riferimento a 'utf8mb4'.
Da Zabbix 6.0, 'utf8mb4' è supportato. Per evitare problemi futuri, è
fortemente consigliato usare 'utf8mb4'.
Un altro vantaggio del passaggio a 'utf8mb4' è il supporto ai caratteri Unicode
supplementari.

::: notewarning
Poiché le versioni precedenti a Zabbix 6.0 non riconoscono utf8mb4, assicurarsi prima di aggiornare 
Zabbix server e lo schema del DB alla versione 6.0.x o successiva prima di eseguire la conversione a utf8mb4.
:::

**1.** Verificare il set di caratteri e la collation del database.

Per esempio:

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

Oppure:

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

Come si può vedere, qui il set di caratteri non è 'utf8mb4' e la collation non è
'utf8mb4\_bin', quindi è necessario correggerli.

**2.** Arrestare Zabbix.

**3.** Creare una copia di backup del database!

**4.** Correggere il set di caratteri e la collation a livello di database:

    alter database <your DB name> character set utf8mb4 collate utf8mb4_bin;

Valori corretti:

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

**5.** Caricare lo
[script](../../../../assets/en/manual/appendix/install/utf8mb4_convert.sql)
per correggere il set di caratteri e la collation a livello di tabella e colonna:

    mysql <your DB name> < utf8mb4_convert.sql

**6.** Eseguire lo script:

                   SET @ZABBIX_DATABASE = '<your DB name>';
    If MariaDB →  set innodb_strict_mode = OFF;        
                   CALL zbx_convert_utf8();
    If MariaDB →  set innodb_strict_mode = ON;   
                   drop procedure zbx_convert_utf8;

Si noti che è previsto che 'utf8mb4' consumi leggermente più spazio su disco.

**7.** Se non ci sono errori, si consiglia di creare una copia di backup del database
corretto.

**8.** Avviare Zabbix.

[comment]: # ({/fd2a288b-25eef83a})
