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

Sådan konverteres en MySQL-database til UTF-8-kodning

Denne artikel beskriver, hvordan man konverterer en MySQL-databases tegnsæt til UTF-8-kodning (også kendt som Unicode). UTF-8 tegnkodningssættet understøtter mange alfabeter og tegn til en lang række sprog.

Selvom MySQL understøtter UTF-8 tegnkodningssættet, bruges det ofte ikke som standardtegnsæt under oprettelse af database og tabel. Som et resultat bruger mange databaser det latinske tegnsæt, som kan være begrænsende afhængigt af applikationen.

Bestemmelse af det aktuelle tegnkodningssæt

For at bestemme, hvilket tegnkodningssæt en MySQL-database eller -tabel i øjeblikket bruger:

  1. Log ind på din A2 Hosting SSH-konto.
  2. På kommandolinjen skal du skrive følgende kommando, og erstatte brugernavn med dit brugernavn:
    mysql -u brugernavn -p
  3. Ved prompten Indtast adgangskode skal du indtaste din adgangskode. Når du indtaster den korrekte adgangskode, vises mysql>-prompten.
  4. For at vise det aktuelle tegnkodningssæt for en bestemt database skal du skrive følgende kommando ved mysql>-prompten. Erstat dbname med databasenavnet:

    SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name ="dbname";
  5. For at vise det aktuelle tegnkodningssæt for en bestemt tabel i en database skal du skrive følgende kommando ved mysql>-prompten. Erstat dbname med databasenavnet og tabelnavn med navnet på tabellen:

    VÆLG CCSA.character_set_name FRA informationsskema.`TABLER` T,informationsskema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA WHERE CCSA.collation_name =T.table_collation OG T.table_schema ="dbname" ="tablename_name"; 
  6. For at afslutte mysql program, skriv \q ved mysql>-prompten.

Konvertering af tegnkodningssættet til UTF-8

Sørg for at sikkerhedskopiere databasen, før du starter denne procedure! Du kan sikkerhedskopiere en MySQL-database ved hjælp af cPanel, phpMyAdmin eller mysqldump program.

Sådan konverteres tegnkodningssættet til UTF-8:

  1. Log ind på din A2 Hosting SSH-konto.
  2. Opret en tekstfil med navnet .my.cnf . For at gøre dette kan du bruge en teksteditor såsom Vim eller Nano. Denne procedure viser, hvordan du bruger Nano. På kommandolinjen skal du skrive følgende kommando:
    nano .my.cnf
  3. Tilføj følgende linjer til filen, og erstat brugernavn med dit brugernavn og adgangskode med din adgangskode (sørg for, at adgangskoden er omgivet af anførselstegn):

    [client]user=usernamepassword="adgangskode"
  4. Når redigeringerne er færdige, skal du trykke på Ctrl+X, skrive y for at gemme filen, og derefter trykke på Enter.
  5. For at ændre tegnsætkodningen til UTF-8 for alle tabellerne i den angivne database skal du skrive følgende kommando på kommandolinjen. Erstat dbname med databasenavnet:

    mysql --database=dbname -B -N -e "VIS TABELLER" | 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. Når kommandoen er færdig, skal du skrive følgende kommando for at starte mysql program:

    mysql
  7. For at ændre tegnsætkodningen til UTF-8 for selve databasen skal du skrive følgende kommando ved mysql>-prompten. Erstat dbname med databasenavnet:

    ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
  8. For at afslutte mysql program, skriv \q ved mysql>-prompten.
  9. For at slette .my.cnf fil, skriv følgende kommando på kommandolinjen:

    rm .my.cnf
  10. For at bekræfte, at tegnsætkodningen nu er indstillet til UTF-8, skal du følge trinene i proceduren Bestem det aktuelle tegnsætsæt ovenfor.

Flere oplysninger

For mere information om UTF-8 og Unicode, besøg venligst http://en.wikipedia.org/wiki/UTF-8.


  1. Gruppering i interval på 5 minutter inden for et tidsinterval

  2. EF-forespørgsel til Oracle kaster ORA-12704:tegnsæt uoverensstemmelse

  3. GROUP BY / aggregeret funktionsforvirring i SQL

  4. Hvordan indstiller jeg ORDER BY-parametre ved hjælp af forberedt PDO-erklæring?