Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment convertir une base de données MySQL en encodage UTF-8

Cet article décrit comment convertir le jeu de caractères d'une base de données MySQL en codage UTF-8 (également appelé Unicode). Le jeu de codage de caractères UTF-8 prend en charge de nombreux alphabets et caractères pour une grande variété de langues.

Bien que MySQL prenne en charge le jeu de codage de caractères UTF-8, il n'est souvent pas utilisé comme jeu de caractères par défaut lors de la création de bases de données et de tables. Par conséquent, de nombreuses bases de données utilisent le jeu de caractères latins, qui peut être limité selon l'application.

Déterminer le jeu d'encodage de caractères actuel

Pour déterminer quel jeu d'encodage de caractères une base de données ou une table MySQL utilise actuellement :

  1. Connectez-vous à votre compte SSH d'hébergement A2.
  2. Sur la ligne de commande, saisissez la commande suivante, en remplaçant username par votre nom d'utilisateur :
    mysql -u username -p
  3. À l'invite Entrer le mot de passe, saisissez votre mot de passe. Lorsque vous tapez le mot de passe correct, l'invite mysql> apparaît.
  4. Pour afficher le jeu de codage de caractères actuel pour une base de données particulière, tapez la commande suivante à l'invite mysql>. Remplacez dbname par le nom de la base de données :

    SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "dbname";
  5. Pour afficher le jeu de codage de caractères actuel pour une table particulière dans une base de données, tapez la commande suivante à l'invite mysql>. Remplacez dbname par le nom de la base de données et tablename par le nom de la table :

    SELECT CCSA.character_set_name FROM information_schema.`TABLES` T,information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA WHERE CCSA.collation_name = T.table_collation AND T.table_schema = "dbname" AND T.table_name = "tablename";
  6. Pour quitter mysql programme, tapez \q à l'invite mysql>.

Convertir le jeu d'encodage de caractères en UTF-8

Assurez-vous de sauvegarder la base de données avant de commencer cette procédure ! Vous pouvez sauvegarder une base de données MySQL en utilisant cPanel, phpMyAdmin ou le mysqldump programme.

Pour convertir le jeu de codage de caractères en UTF-8 :

  1. Connectez-vous à votre compte SSH d'hébergement A2.
  2. Créez un fichier texte nommé .my.cnf . Pour ce faire, vous pouvez utiliser un éditeur de texte tel que Vim ou Nano. Cette procédure montre comment utiliser Nano. Sur la ligne de commande, saisissez la commande suivante :
    nano .my.cnf
  3. Ajoutez les lignes suivantes au fichier, en remplaçant nom d'utilisateur par votre nom d'utilisateur et mot de passe par votre mot de passe (assurez-vous que le mot de passe est entre guillemets) :

    [client]
    user=username
    password="password"
  4. Lorsque les modifications sont terminées, appuyez sur Ctrl+X, tapez y pour enregistrer le fichier, puis appuyez sur Entrée.
  5. Pour changer le codage du jeu de caractères en UTF-8 pour toutes les tables de la base de données spécifiée, tapez la commande suivante sur la ligne de commande. Remplacez dbname par le nom de la base de données :

    mysql --database=dbname -B -N -e "SHOW TABLES" | awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; SET foreign_key_checks = 1; "}' | mysql --database=dbname
  6. Une fois la commande terminée, tapez la commande suivante pour démarrer le mysql programme:

    mysql
  7. Pour changer le codage du jeu de caractères en UTF-8 pour la base de données elle-même, tapez la commande suivante à l'invite mysql>. Remplacez dbname par le nom de la base de données :

    ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
  8. Pour quitter mysql programme, tapez \q à l'invite mysql>.
  9. Pour supprimer le .my.cnf fichier, tapez la commande suivante sur la ligne de commande :

    rm .my.cnf
  10. Pour vérifier que le codage du jeu de caractères est désormais défini sur UTF-8, suivez les étapes de la procédure Déterminer le jeu de codage de caractères actuel ci-dessus.

Plus d'informations

Pour plus d'informations sur UTF-8 et Unicode, veuillez visiter http://en.wikipedia.org/wiki/UTF-8.