Bonjour,
Voila, j'avais effectué le changement sur une plateforme en juillet, et je viens de le faire hier sur notre plateforme principale (en 3.1.7, avant de passer à 3.3.1+).
Du coup, la commande exacte utilisée pour la conversion du fichier sql exporté (contenant la totalité de la base de données Moodle) était :
sed 's/utf8/utf8mb4/g' <export.moodle.sql \
| sed 's/utf8mb4mb4/utf8mb4/g' \
| sed 's/DEFAULT CHARSET=utf8mb4/DEFAULT CHARSET=utf8mb4 ROW_FORMAT=Compressed/' \
| sed 's/utf8mb4_general_ci/utf8mb4_unicode_ci/g' \
| sed 's#http://mon.moodle.fr#https://mon.moodle.fr#g' \
> export.moodle.https.utf8mb4.sql
C'est une suite de remplacements (dont l'ordre a une importance) : chaque commande sed remplace un élément (séparateur / utilisé, puis # pour le dernier) par un autre (et g signifie pour chaque occurrence de chaque ligne).Il est à noter que, passant par la même occasion à https, j'en ai profité pour intégrer une ligne pour ce changement
Le rechargement de la BDD a duré environ 1h45, pour un fichier dump (export.moodle.https.utf8mb4.sql) de 13 Go (et 17 Go de fichiers dans le dossier /var/lib/mysql/).
Du coup, toutes les tables (et colonnes) étaient directement converties correctement en utf8mb4 (et interclassement utf8md4_unicode_ci), sans avoir besoin de modifier autre chose
En espérant que cela puisse aider d'autres personnes.
Séverin