sql >> Database teknologi >  >> RDS >> Mysql

Sådan rettes forkert strengværdi i MySQL

Nogle gange kan du få fejlen "Forkert strengværdi", mens du forsøger at indsætte data i MySQL-tabellen eller importere eksterne data til MySQL-databasen. I denne artikel vil vi se på, hvordan man retter forkert strengværdi i MySQL.


Sådan rettes forkert strengværdi i MySQL

Dette er en almindelig fejl, når du forsøger at indsætte værdi i en MySQL-tabel, der ikke har en UTF8-kodning eller et tegnsæt.


1. Tjek standardtegnsæt

Log ind på MySQL og kør følgende kommando for at kontrollere standardtegnsætnavnet på din database. Erstat databasenavn med dit databasenavn.

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

Hvis din database ikke har UTF8-kodning, skal du ændre den til UTF8. Før det skal vi tage en sikkerhedskopi af vores database.


2. Sikkerhedskopier MySQL-database

Log ud af MySQL og kør følgende kommando for at tage backup af din MySQL-database. Erstat brugernavn , adgangskode og databasenavn med dit brugernavn, adgangskode og databasenavne.

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


3. Skift tegnsæt af tabeller

Kør følgende kommando for at ændre tegnsættet for alle tabeller i din database til UTF8. Erstat databasenavn med dit databasenavn

$ 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 giver dig mulighed for at ændre tegnsæt af kun én tabel ad gangen. Det kan være kedeligt at køre separate kommandoer for at ændre tegnsæt for hver tabel. Ovenstående kommando viser alle tabellerne i en database og konverterer deres tegnsæt til UTF8 én efter én, automatisk.


4. Skift databasetegnsæt

Log ind på MySQL og kør følgende kommando for at ændre databasens tegnsæt til UTF8. Erstat databasenavn med databasenavn.

mysql> ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;

Hvis du nu skal indsætte data i MySQL-databasen, burde det ikke give fejl. Ubiq gør det nemt at visualisere data og overvåge dem i dashboards i realtid. Prøv Ubiq gratis.

  1. 2013 MVP Summit:En hurtig gennemgang og et kig frem

  2. Hvordan NULLIF() virker i SQL Server

  3. Eksempler på konvertering af 'smalldatetime' til 'datetime' i SQL Server (T-SQL)

  4. Udfyld JFreechart TimeSeriesCollection fra Mysql DB?