Introduction
MySQL offre une gamme d'encodage de caractères qui peuvent vous servir. Pour savoir quels sont les encodages supportés par votre base de données simplement exécuter la requête suivante : show charset
.
Plusieurs raisons peuvent vous inciter à modifier le "charset" d'une base de données. L'ajout de nouvelles langues, meilleure compatibilité avec un script client, etc.
Générer un script de modifications
Si vous souhaitez modifier le charset de toutes les tables et colonnes dans une base de données MySQL pour une raison ou une autre, voici une méthode qui vous permet de générer la modification désirée.
Par exemple si on souhaite modifier pour utiliser le charset utf8mb4 avec la collation utf8mb4_unicode_ci
mysql -N -u user -p -e "SELECT DISTINCT CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'nom de la bd' AND CHARACTER_SET_NAME NOT LIKE 'utf8mb4'" > alter.sql
N'oubliez pas de remplacer le "user" et "nom de la bd" par les valeurs désirées.
Exécuter le script de modifications
Ceci va créer un script alter.sql qui pourra alors être exécuté dans la base de données pour procéder au changement.
Voici comment importer directement dans la base de données.
mysql -u user -p < alter.sql
Il est suggéré de faire une sauvegarde en cas de problème, consulter notre tutoriel pour faire une sauvegarde MySQL.