sql >> Base de Datos >  >> RDS >> Mysql

Cómo corregir un valor de cadena incorrecto en MySQL

A veces puede obtener el error "Valor de cadena incorrecto" al intentar insertar datos en la tabla MySQL o importar datos externos a la base de datos MySQL. En este artículo, veremos cómo corregir un valor de cadena incorrecto en MySQL.


Cómo corregir un valor de cadena incorrecto en MySQL

Este es un error común cuando intenta insertar un valor en una tabla MySQL que no tiene una codificación UTF8 o conjunto de caracteres.


1. Comprobar el conjunto de caracteres predeterminado

Inicie sesión en MySQL y ejecute el siguiente comando para verificar el nombre del conjunto de caracteres predeterminado de su base de datos. Reemplace nombre_base_de_datos con el nombre de su base de datos.

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

Si su base de datos no tiene codificación UTF8, debe cambiarla a UTF8. Antes de eso, necesitamos hacer una copia de seguridad de nuestra base de datos.


2. Copia de seguridad de la base de datos MySQL

Cierre la sesión de MySQL y ejecute el siguiente comando para realizar una copia de seguridad de su base de datos MySQL. Reemplazar nombre_de_usuario , contraseña y nombre_de_la_base_de_datos con su nombre de usuario, contraseña y nombres de base de datos respectivamente.

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


3. Cambiar el juego de caracteres de las tablas

Ejecute el siguiente comando para cambiar el conjunto de caracteres de todas las tablas de su base de datos a UTF8. Reemplace nombre_base_de_datos con el nombre de su base de datos

$ 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 le permite cambiar el conjunto de caracteres de una sola tabla a la vez. Puede ser tedioso ejecutar comandos separados para cambiar el conjunto de caracteres de cada tabla. El comando anterior enumera todas las tablas en una base de datos y convierte su juego de caracteres a UTF8 uno por uno, automáticamente.


4. Cambiar el conjunto de caracteres de la base de datos

Inicie sesión en MySQL y ejecute el siguiente comando para cambiar el conjunto de caracteres de la base de datos a UTF8. Reemplace nombre_base_datos con el nombre de la base de datos.

mysql> ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;

Ahora, si inserta datos en la base de datos MySQL, no debería dar errores. Ubiq facilita la visualización de datos y la supervisión en paneles en tiempo real. Prueba Ubiq gratis.