Historiquement, MySQL et ses d¨¦riv¨¦s utilisaient 'utf8' comme alias pour utf8mb3 - la propre impl¨¦mentation de 3 octets de MySQL de l'UTF8 standard, qui est de 4 octets. ? partir de MySQL 8.0.28 et MariaDB 10.6.1, le jeu de caract¨¨res 'utf8mb3' est obsol¨¨te et ¨¤ un moment donn¨¦, son support sera abandonn¨¦ tandis que 'utf8' deviendra une r¨¦f¨¦rence ¨¤ 'utf8mb4'. Depuis Áú»¢¶Ä²© 6.0, 'utf8mb4' est pris en charge. Pour ¨¦viter de futurs probl¨¨mes, il est fortement recommand¨¦ d'utiliser 'utf8mb4'. Un autre avantage du passage ¨¤ 'utf8mb4' est la prise en charge de caract¨¨res Unicode suppl¨¦mentaires.
Comme les versions ant¨¦rieures ¨¤ Áú»¢¶Ä²© 6.0 ne connaissent pas utf8mb4, assurez-vous d'abord de mettre ¨¤ niveau le serveur Áú»¢¶Ä²© et le sch¨¦ma de base de donn¨¦es vers 6.0.x avant d'ex¨¦cuter la conversion 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 le voyons, le jeu de caract¨¨res ici n'est pas 'utf8mb4' et la collation n'est pas 'utf8mb4_bin', nous devons donc les corriger.
2. Arr¨ºtez Áú»¢¶Ä²©.
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 :
Valeurs corrig¨¦es :
mysql> SELECT @@character_set_database, @@collation_database;
+--------------------------+----------------------+
| @@character_set_database | @@collation_database |
+--------------------------+----------------------+
| utf8mb4 | utf8mb4_bin |
+--------------------------+----------------------+
5. Chargez le script pour corriger le jeu de caract¨¨res et le classement au niveau de la table et de la colonne :
6. Ex¨¦cutez le script :
SET @ZABBIX_DATABASE = '<nom de votre base de donn¨¦es>';
Si MariaDB ¡ú set innodb_strict_mode = OFF;
CALL zbx_convert_utf8();
Si MariaDB ¡ú set innodb_strict_mode = ON;
drop procedure zbx_convert_utf8;
Veuillez noter que 'utf8mb4' devrait consommer un peu 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 avec la base de donn¨¦es corrig¨¦e.
8. D¨¦marrez Áú»¢¶Ä²©.