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

Comment réparer une valeur de chaîne incorrecte dans MySQL

Parfois, vous pouvez obtenir une erreur "Valeur de chaîne incorrecte" lorsque vous essayez d'insérer des données dans la table MySQL ou d'importer des données externes dans la base de données MySQL. Dans cet article, nous verrons comment corriger une valeur de chaîne incorrecte dans MySQL.


Comment réparer une valeur de chaîne incorrecte dans MySQL

Il s'agit d'une erreur courante lorsque vous essayez d'insérer une valeur dans une table MySQL qui n'a pas d'encodage ou de jeu de caractères UTF8.


1. Vérifier le jeu de caractères par défaut

Connectez-vous à MySQL et exécutez la commande suivante pour vérifier le nom du jeu de caractères par défaut de votre base de données. Remplacez database_name par le nom de votre base de données.

mysql> SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "database_name";

Si votre base de données n'a pas d'encodage UTF8, vous devez le changer en UTF8. Avant cela, nous devons effectuer une sauvegarde de notre base de données.


2. Sauvegarder la base de données MySQL

Déconnectez-vous de MySQL et exécutez la commande suivante pour effectuer une sauvegarde de votre base de données MySQL. Remplacez user_name , pass_word et database_name avec votre nom d'utilisateur, votre mot de passe et les noms de base de données respectivement.

$ sudo mysql -u user_name -p pass_word database_name > backup.sql


3. Modifier le jeu de caractères des tableaux

Exécutez la commande suivante pour modifier le jeu de caractères de toutes les tables de votre base de données en UTF8. Remplacez database_name par le nom de votre base de données

$ sudo mysql --database=database_name -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=database_name

MySQL vous permet de modifier le jeu de caractères d'une seule table à la fois. Il peut être fastidieux d'exécuter des commandes distinctes pour modifier le jeu de caractères de chaque table. La commande ci-dessus répertorie toutes les tables d'une base de données et convertit leur jeu de caractères en UTF8 un par un, automatiquement.


4. Modifier le jeu de caractères de la base de données

Connectez-vous à MySQL et exécutez la commande suivante pour modifier le jeu de caractères de la base de données en UTF8. Remplacez database_name par le nom de la base de données.

mysql> ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;

Maintenant, si vous insérez des données dans la base de données MySQL, cela ne devrait pas donner d'erreurs. Ubiq facilite la visualisation des données et leur suivi dans des tableaux de bord en temps réel. Essayez Ubiq gratuitement.