Maison > Article > base de données > Modifier l'encodage de la base de données MySQL
MySQL est un système de gestion de base de données open source largement utilisé dans divers sites Web, entrepôts de données et applications d'entreprise. Dans MySQL, le format de codage fait référence à la méthode de stockage binaire interne du contenu texte stocké dans la base de données.
Si votre base de données stocke des caractères spéciaux, tels que des caractères chinois ou d'autres caractères non anglais, vous devez définir le format d'encodage correct pour garantir que ces caractères peuvent être stockés et récupérés correctement. Cet article explique comment modifier le format d'encodage de la base de données MySQL.
Première étape : sauvegarder la base de données
Avant d'effectuer toute modification de la base de données, sauvegardez toujours la base de données pour éviter toute perte de données ou tout dommage irrécupérable. Vous pouvez utiliser l'outil mysqldump fourni par MySQL pour sauvegarder la base de données. La commande est la suivante :
mysqldump -u [username] -p [database_name] > backup.sql
où [username] est le nom d'utilisateur de la base de données, [database_name] est le nom de la base de données à sauvegarder, > signifie rediriger le contenu de la sauvegarde vers le milieu du fichier backup.sql.
Étape 2 : Afficher l'encodage de la base de données
Pour afficher l'encodage par défaut dans la base de données MySQL actuelle, vous pouvez exécuter la commande suivante :
SELECT @@character_set_database;
Cette commande affichera le format d'encodage par défaut actuel de la base de données.
Étape 3 : Modifier l'encodage de la base de données
Pour modifier l'encodage de la base de données, vous devez effectuer les étapes suivantes :
find / -name my.cnf
[client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] collation-server = utf8mb4_unicode_ci character-set-server = utf8mb4
Ces paramètres garantissent que tous les clients et serveurs MySQL utilisent le format d'encodage correct.
sudo service mysql restart
SELECT @@character_set_database;
S'ils sont appliqués correctement, le résultat doit indiquer "utf8mb4".
Étape 4 : Convertir les tables existantes vers le nouvel encodage
Si les tables existent déjà dans la base de données, elles doivent être converties au nouveau format d'encodage afin de stocker correctement les données.
SELECT CONCAT('ALTER TABLE `', table_schema, '`.`', table_name, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') AS execute_sql FROM information_schema.tables WHERE table_schema = '[database_name]' AND table_type = 'BASE TABLE' ORDER BY table_name DESC;
Où [database_name] est le nom de la base de données qui doit être convertie.
ALTER TABLE `table1` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `table2` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ...
Étape 5 : Testez les modifications
Après avoir converti toutes les tables, vous devez tester si les modifications ont réussi. Exécutez la commande suivante pour vous assurer que le format d'encodage de toutes les tables a été mis à jour :
SHOW FULL COLUMNS FROM [table_name];
Où [table_name] est le nom de la table à tester. Cette commande affichera les colonnes et les métadonnées du tableau, et verra également si des données dans l'ancien format de codage existent dans le tableau. Si les résultats semblent corrects, la modification a réussi.
Conclusion
La modification du format d'encodage de la base de données dans MySQL peut garantir que les caractères spéciaux peuvent être stockés et récupérés correctement, offrant ainsi une prise en charge parfaite des sites Web et des applications multilingues. En suivant les étapes fournies dans cet article, vous pourrez facilement modifier le format d'encodage de votre base de données MySQL et éviter la perte ou la corruption de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!