Maison  >  Article  >  base de données  >  Modifier l'encodage de la base de données MySQL

Modifier l'encodage de la base de données MySQL

WBOY
WBOYoriginal
2023-05-20 09:49:071493parcourir

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 :

  1. Trouvez le fichier de configuration MySQL (généralement /etc/my.cnf) et ouvrez-le. Si vous ne trouvez pas le fichier, vous pouvez exécuter la commande suivante dans le terminal pour le trouver :
find / -name my.cnf
  1. Ajoutez la ligne suivante dans le fichier de configuration :
[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.

  1. Enregistrez et fermez le profil.
  2. Redémarrez le serveur MySQL pour que les modifications prennent effet :
sudo service mysql restart
  1. Exécutez la commande suivante pour vérifier si les paramètres ont été appliqués avec succès :
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.

  1. Exécutez la commande suivante pour générer une instruction SQL pour toutes les tables qui doivent être mises à niveau :
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.

  1. Copiez les résultats dans un terminal et exécutez pour convertir toutes les tables vers le nouvel encodage. Comme indiqué ci-dessous :
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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:mysql mot de passe oublié macArticle suivant:mysql mot de passe oublié mac