Maison  >  Article  >  base de données  >  mysql change l'encodage de la base de données

mysql change l'encodage de la base de données

王林
王林original
2023-05-23 12:50:371450parcourir

MySQL est un système de gestion de bases de données relationnelles populaire qui peut être utilisé pour les sites Web personnels et les petites entreprises ainsi que pour les grandes applications et les logiciels d'entreprise. MySQL utilise le codage UTF-8 par défaut pour prendre en charge le stockage de données multilingues, mais vous rencontrez parfois des problèmes de codage de base de données, tels que des caractères tronqués ou l'incapacité d'afficher correctement les caractères chinois. À l'heure actuelle, le codage de la base de données MySQL doit être modifié pour résoudre ces problèmes.

Cet article expliquera comment modifier l'encodage de la base de données MySQL. Tout d’abord, nous devons comprendre les concepts de jeu de caractères et d’encodage MySQL. Le jeu de caractères dans MySQL fait référence au jeu de caractères qui représente les caractères et le texte dans la base de données, comme utf8, gbk, etc. Le codage fait référence à la manière dont ces jeux de caractères sont utilisés pour le stockage et la transmission sur les ordinateurs.

Étape 1 : Sauvegardez la base de données

Assurez-vous de sauvegarder la base de données avant d'apporter des modifications afin d'éviter toute perte accidentelle de données. Vous pouvez utiliser la commande mysqldump pour sauvegarder l'intégralité de la base de données dans un fichier SQL, comme indiqué ci-dessous :

mysqldump -u username -p dbname > backup.sql

Où username est le nom d'utilisateur MySQL, dbname est le nom de la base de données qui doit être sauvegardée et backup.sql est le nom du fichier de sauvegarde.

Une fois la sauvegarde terminée, vous pouvez continuer à modifier l'encodage MySQL.

Étape 2 : Vérifiez l'encodage de la base de données

Utilisez la commande suivante pour vérifier le jeu de caractères et l'encodage de la base de données actuelle :

SHOW VARIABLES LIKE '%character%';

Les résultats sont les suivants :

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

Comme vous pouvez le voir ici, le jeu de caractères et l'encodage de la base de données actuelle sont tous deux utf8mb4. Si vous souhaitez le changer en gbk ou autre encodage, vous devez passer à l'étape suivante.

Étape 3 : Modifier l'encodage de la base de données

Tout d'abord, vous devez confirmer le nom de la base de données à modifier. Supposons que vous souhaitiez changer l'encodage de la base de données mydb en gbk, vous pouvez utiliser la commande suivante :

ALTER DATABASE mydb CHARACTER SET gbk;

Vous pouvez utiliser la commande suivante pour confirmer si l'encodage de la base de données a été modifié avec succès.

SHOW CREATE DATABASE mydb;

Parmi eux, mydb est le nom de la base de données à modifier. Si vous voyez "DEFAULT CHARACTER SET gbk" dans la sortie, cela signifie que l'encodage de la base de données a été modifié avec succès.

S'il existe déjà une table de données dans la base de données, son jeu de caractères et son encodage doivent également être modifiés selon le nouvel encodage cible. Vous pouvez utiliser la commande suivante pour modifier une seule table de données :

ALTER TABLE mytable CONVERT TO CHARACTER SET gbk;

où, mytable est le nom de la table de données à modifier, et gbk est l'encodage cible.

Si vous devez modifier l'encodage de plusieurs tables de données en même temps, vous pouvez utiliser la commande suivante pour le modifier par lots :

ALTER DATABASE mydb CHARACTER SET gbk;
ALTER TABLE mytable1 CONVERT TO CHARACTER SET gbk;
ALTER TABLE mytable2 CONVERT TO CHARACTER SET gbk;
...

A noter que modifier l'encodage de la table de données modifiera le jeu de caractères et le codage de toutes les colonnes de la table de données, ce qui signifie que les données originales de la table de données seront écrasées, alors assurez-vous de sauvegarder les données avant d'effectuer des modifications. De plus, si vous souhaitez interroger ces tables de données, vous devez également utiliser un codage qui correspond à son jeu de caractères et à son codage.

Étape 4 : Redémarrer MySQL

Après avoir modifié le jeu de caractères et l'encodage de la table de données, vous devez redémarrer le service MySQL pour vous assurer que la modification de la base de données a pris effet. Vous pouvez utiliser la commande suivante pour redémarrer le serveur MySQL :

sudo systemctl restart mysql

Vous devez saisir le mot de passe de l'utilisateur root pour exécuter cette commande.

Résumé

La modification de l'encodage de la base de données MySQL peut résoudre les problèmes liés au jeu de caractères et à l'encodage. Ce processus peut être complété en sauvegardant les données, en vérifiant le jeu de caractères et l'encodage, en modifiant l'encodage de la base de données et en redémarrant MySQL. Il convient de noter que la modification de l'encodage de la base de données affectera toutes les tables de données existantes dans la base de données, alors assurez-vous de sauvegarder les données avant d'opérer.

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