[comment]: # translation:outdated

[comment]: # ({609a8e9d-609a8e9d})
# 2 Réparation du jeu de caractères et de la collation de la base de données Zabbix

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

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

Historiquement, MySQL et ses dérivés utilisaient « utf8 » comme alias de utf8mb3, l’implémentation 3 octets par MySQL du standard UTF8, qui est en réalité sur 4 octets.
À partir de MySQL 8.0.28 et MariaDB 10.6.1, le jeu de caractères « utf8mb3 » est
déprécié et, à terme, sa prise en charge sera abandonnée, tandis que « utf8 »
deviendra une référence à « utf8mb4 ».
Depuis Zabbix 6.0, « utf8mb4 » est pris en charge. Afin d’éviter des problèmes à l’avenir, il est
fortement recommandé d’utiliser « utf8mb4 ».
Un autre avantage du passage à « utf8mb4 » est la prise en charge des caractères
Unicode supplémentaires.

::: notewarning
Comme les versions antérieures à Zabbix 6.0 ne prennent pas en charge utf8mb4, assurez-vous d’abord de mettre à niveau 
le serveur Zabbix et le schéma de base de données vers la version 6.0.x ou ultérieure avant d’exécuter la conversion vers utf8mb4.
:::

**1.** Vérifiez le jeu de caractères et le classement de la base de données.

Par exemple :

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

Ou :

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

Comme nous pouvons le voir, le jeu de caractères ici n’est pas « utf8mb4 » et le classement n’est pas
« utf8mb4\_bin », nous devons donc les corriger.

**2.** Arrêtez Zabbix.

**3.** Créez une copie de sauvegarde de la base de données !

**4.** Corrigez le jeu de caractères et le classement au niveau de la base de données :

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

Valeurs corrigées :

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

**5.** Chargez le
[script](../../../../assets/en/manual/appendix/install/utf8mb4_convert.sql)
pour corriger le jeu de caractères et le classement au niveau des tables et des colonnes :

    mysql <your DB name> < utf8mb4_convert.sql

**6.** Exécutez le 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;

Veuillez noter que « utf8mb4 » devrait consommer légèrement plus d’espace disque.

**7.** S’il n’y a pas d’erreurs, vous pouvez créer une copie de sauvegarde de la base de données
corrigée.

**8.** Démarrez Zabbix.

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