« Support unicode complet pour MySQL » : différence entre les versions

De MoodleDocs
Aller à :navigation, rechercher
mAucun résumé des modifications
m (Améliorations)
Ligne 2 : Ligne 2 :
==UTF-8==
==UTF-8==


UTF-8 est un encodage de caractères utilisé par la plupart des sites web. Il encode chacun des 1,112,064 points de codes valides. Pour stocker toute cette information, quatre octets sont requis. Les valeurs les plus courantes sont dans la région de trois octets. MySQL utilise donc par défaut un encodage uniquement sur trois octets, et les valeurs nécessitant quatre octets ne peuvent donc pas être stockées. Tout enregistrement contenant un caractère sur quatre octet ne pourra pas être enregistré.
UTF-8 est un encodage de caractères utilisé par la plupart des sites web. Il encode chacun des 1'112'064 points de codes valides. Pour stocker toute cette information, quatre octets au maximum sont requis. Les caractères les plus courants utilisent trois octets. MySQL utilise donc par défaut un encodage uniquement sur trois octets, et les valeurs nécessitant quatre octets ne peuvent donc pas être stockées. Tout enregistrement contenant un caractère codé sur quatre octets ne pourra pas être enregistré.


MySQL permet un support unicode (UTF-8) complet. Cela nécessite de configurer certains réglages. Depuis Moodle 3.3, par défaut le support UTF-8 complet sera assuré pour MySQL et MariaDB. Les bases de données existantes fonctionneront toujours avec le support partiel, mais il est recommandé de passer au support complet.
MySQL et MariaDB offrent un support unicode (UTF-8) complet. Cela nécessite de configurer certains réglages. Depuis Moodle 3.3, par défaut le support UTF-8 complet sera assuré pour MySQL et MariaDB. Les bases de données existantes fonctionneront toujours avec le support partiel, mais il est recommandé de passer au support complet.


Moodle intègre un script en ligne de commande (CLI) pour convertir vers l'UTF-8 complet pour MySQL (et MariaDB). Avant Moodle 3.3, cet outil de conversion modifiait uniquement l'interclassement pour certaines variantes de 'utf8_bin'. 'utf8_unicode_ci' était l'interclassement recommandé. Nous recommandons maintenant 'utf8mb4_unicode_ci'. 'utf8mb4_unicode_ci' supporte les caractères sur quatre octets (utf8_unicode_ci supporte uniquement les caractères sur trois octets), donc les caractères sur quatre octets, tels que les caractères asiatiques et les emoji, devraient maintenant être complètement supportés.
Moodle intègre un script en ligne de commande (CLI) pour convertir vers l'UTF-8 complet pour MySQL (et MariaDB). Avant Moodle 3.3, cet outil de conversion modifiait uniquement l'interclassement pour certaines variantes de 'utf8_bin'. 'utf8_unicode_ci' était l'interclassement recommandé. L'interclassement recommandé est maintenant 'utf8mb4_unicode_ci'. 'utf8mb4_unicode_ci' supporte les caractères sur quatre octets (utf8_unicode_ci supporte uniquement les caractères sur trois octets). Ainsi les caractères sur quatre octets, tels que les caractères asiatiques et les emoji, sont désormais être complètement supportés.


Ce script essayera de modifier l'interclassement de la base de données, l'encodage des caractères et les réglages par défaut des tables.
Ce script tente de modifier l'interclassement de la base de données, l'encodage des caractères et les réglages par défaut des tables.


En résumé :
En résumé :
 
* les nouvelles installations de Moodle 3.1.5 et 3.2.2 et ultérieures utiliseront utf8mb4 par défaut ;
* Les installations neuves de Moodle 3.1.5 et 3.2.2 et ultérieures utiliseront utf8mb4 par défaut.
* les sites mis à jour vers Moodle 3.1.5 ou 3.2.2 peuvent utiliser le script pour mettre à jour vers utf8mb4 ;
* Les sites mis à jour vers Moodle 3.1.5 ou 3.2.2 peuvent utiliser le script pour mettre à jour vers utf8mb4.
* dans Moodle 3.3, si la base de données n'est pas configurée pour le support UTF-8 complet, un avertissement sera affiché et encouragera à passer à utf8mb4, mais vous pourrez continuer à utiliser utf8 comme avant.
* Dans Moodle 3.3, si la base de données n'est pas configurée pour le support UTF-8 complet, un avertissement sera affiché et encouragera à passer à utf8mb4, mais vous pourrez continuer à utiliser utf8 comme avant.
* il est ''probable'' que dans une version future, le support complet de l'UTF-8 soit obligatoire.
* Il est ''probable'' que dans une version future, le support complet de l'UTF-8 soit obligatoire.


=== Format de fichier ===
=== Format de fichier ===


Pour autoriser les grands indexes sur les colonnes de type varchar, une combinaison de réglages est nécessaire. Le format de fichier du système doit utiliser "Barracuda". Cela permet au format de ligne d'être défini à "Compressé" ou "Dynamique". Pour activer ce réglage, voyez les ''Étapes de mise à jour'' ci-dessous.
Pour autoriser les grands index sur les colonnes de type varchar, une combinaison de réglages est nécessaire. Le format de fichier du système doit utiliser "Barracuda". Cela permet au format de ligne d'être défini à "Compressé" ou "Dynamique". Pour activer ce réglage, voyez les ''Étapes de mise à jour'' ci-dessous.


=== Fichier par table ===
=== Fichier par table ===

Version du 17 mars 2017 à 11:50

Modèle:Environnement

UTF-8

UTF-8 est un encodage de caractères utilisé par la plupart des sites web. Il encode chacun des 1'112'064 points de codes valides. Pour stocker toute cette information, quatre octets au maximum sont requis. Les caractères les plus courants utilisent trois octets. MySQL utilise donc par défaut un encodage uniquement sur trois octets, et les valeurs nécessitant quatre octets ne peuvent donc pas être stockées. Tout enregistrement contenant un caractère codé sur quatre octets ne pourra pas être enregistré.

MySQL et MariaDB offrent un support unicode (UTF-8) complet. Cela nécessite de configurer certains réglages. Depuis Moodle 3.3, par défaut le support UTF-8 complet sera assuré pour MySQL et MariaDB. Les bases de données existantes fonctionneront toujours avec le support partiel, mais il est recommandé de passer au support complet.

Moodle intègre un script en ligne de commande (CLI) pour convertir vers l'UTF-8 complet pour MySQL (et MariaDB). Avant Moodle 3.3, cet outil de conversion modifiait uniquement l'interclassement pour certaines variantes de 'utf8_bin'. 'utf8_unicode_ci' était l'interclassement recommandé. L'interclassement recommandé est maintenant 'utf8mb4_unicode_ci'. 'utf8mb4_unicode_ci' supporte les caractères sur quatre octets (utf8_unicode_ci supporte uniquement les caractères sur trois octets). Ainsi les caractères sur quatre octets, tels que les caractères asiatiques et les emoji, sont désormais être complètement supportés.

Ce script tente de modifier l'interclassement de la base de données, l'encodage des caractères et les réglages par défaut des tables.

En résumé :

  • les nouvelles installations de Moodle 3.1.5 et 3.2.2 et ultérieures utiliseront utf8mb4 par défaut ;
  • les sites mis à jour vers Moodle 3.1.5 ou 3.2.2 peuvent utiliser le script pour mettre à jour vers utf8mb4 ;
  • dans Moodle 3.3, si la base de données n'est pas configurée pour le support UTF-8 complet, un avertissement sera affiché et encouragera à passer à utf8mb4, mais vous pourrez continuer à utiliser utf8 comme avant.
  • il est probable que dans une version future, le support complet de l'UTF-8 soit obligatoire.

Format de fichier

Pour autoriser les grands index sur les colonnes de type varchar, une combinaison de réglages est nécessaire. Le format de fichier du système doit utiliser "Barracuda". Cela permet au format de ligne d'être défini à "Compressé" ou "Dynamique". Pour activer ce réglage, voyez les Étapes de mise à jour ci-dessous.

Fichier par table

Pour activer ce réglage, voyez les Étapes de mise à jour ci-dessous.

Grand préfixe

Ceci en conjonction avec le format de ligne défini à "Compressé" ou "Dynamique" permet de grands indexes pour les varchar au delà de 191 caractères. Pour activer ce réglage, voyez les Étapes de mise à jour ci-dessous.

Étapes de mise à jour

Important : effectuez une sauvegarde complète (de votre base de données) avant d'effectuer des changements ou de lancer le script !

  • Modifiez les réglages de configuration pour MySQL (idem pour MariaDB). Cette étape est optionnelle. Vous pouvez lancer le script et il essayera de faire toutes les modifications par lui-même. si des erreurs se produisent, essayez de modifier manuellement ces réglages comme indiqué ci-dessous.
    • Sur les systèmes basés sur Linux vous devrez modifier le fichier my.cnf. Il est situé dans '/etc/mysql/'.
    • Faites les modifications suivantes au fichier my.cnf :

[client] default-character-set = utf8mb4

[mysqld] innodb_file_format = Barracuda innodb_file_per_table = 1 innodb_large_prefix

character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci

[mysql] default-character-set = utf8mb4

  • Redémarrez votre serveur MySQL
  • Lancez le script en ligne de commande pour convertir au nouveau codage de caractère et interclassement (nécessite Moodle 3.1.5, 3.2.2 ou plus récent) : php admin/cli/mysql_collation.php --collation=utf8mb4_unicode_ci

La mise à jour est maintenant terminée.

Voir aussi