sql >> Databáze >  >> RDS >> Mysql

Jak převést databázi MySQL do kódování UTF-8

Tento článek popisuje, jak převést znakovou sadu databáze MySQL na kódování UTF-8 (také známé jako Unicode). Sada kódování znaků UTF-8 podporuje mnoho abeced a znaků pro širokou škálu jazyků.

Přestože MySQL podporuje znakovou sadu UTF-8, často se nepoužívá jako výchozí znaková sada při vytváření databáze a tabulek. V důsledku toho mnoho databází používá znakovou sadu latinky, což může být v závislosti na aplikaci omezující.

Určení aktuální sady kódování znaků

Chcete-li zjistit, kterou sadu kódování znaků aktuálně používá databáze nebo tabulka MySQL:

  1. Přihlaste se ke svému účtu A2 Hosting SSH.
  2. Na příkazovém řádku zadejte následující příkaz a nahraďte uživatelské jméno svým uživatelským jménem:
    mysql -u username -p
  3. Na výzvu Zadejte heslo zadejte heslo. Když zadáte správné heslo, zobrazí se výzva mysql>.
  4. Chcete-li zobrazit aktuální sadu kódování znaků pro konkrétní databázi, zadejte do řádku mysql> následující příkaz. Nahraďte dbname názvem databáze:

    SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "dbname";
  5. Chcete-li zobrazit aktuální sadu kódování znaků pro konkrétní tabulku v databázi, zadejte do řádku mysql> následující příkaz. Nahraďte dbname názvem databáze a název tabulky názvem tabulky:

    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. Chcete-li ukončit mysql zadejte \q do příkazového řádku mysql>.

Převod sady kódování znaků na UTF-8

Před zahájením tohoto postupu se ujistěte, že jste zálohovali databázi! Databázi MySQL můžete zálohovat pomocí cPanel, phpMyAdmin nebo mysqldump program.

Chcete-li převést sadu kódování znaků na UTF-8:

  1. Přihlaste se ke svému účtu A2 Hosting SSH.
  2. Vytvořte textový soubor s názvem .my.cnf . K tomu můžete použít textový editor, jako je Vim nebo Nano. Tento postup ukazuje, jak používat Nano. Na příkazový řádek zadejte následující příkaz:
    nano .my.cnf
  3. Přidejte do souboru následující řádky a nahraďte uživatelské jméno svým uživatelským jménem a heslem svým heslem (ujistěte se, že heslo je uzavřeno v uvozovkách):

    [client]
    user=username
    password="password"
  4. Po dokončení úprav stiskněte Ctrl+X, zadejte y pro uložení souboru a poté stiskněte Enter.
  5. Chcete-li změnit kódování znakové sady na UTF-8 pro všechny tabulky v zadané databázi, zadejte na příkazový řádek následující příkaz. Nahraďte dbname názvem databáze:

    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. Po dokončení příkazu zadejte následující příkaz pro spuštění mysql program:

    mysql
  7. Chcete-li změnit kódování znakové sady na UTF-8 pro samotnou databázi, zadejte do řádku mysql> následující příkaz. Nahraďte dbname názvem databáze:

    ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
  8. Chcete-li ukončit mysql zadejte \q do příkazového řádku mysql>.
  9. Chcete-li odstranit soubor .my.cnf soubor, zadejte do příkazového řádku následující příkaz:

    rm .my.cnf
  10. Chcete-li ověřit, že kódování znakové sady je nyní nastaveno na UTF-8, postupujte podle kroků ve výše uvedeném postupu Určení aktuální sady kódování znaků.

Další informace

Další informace o UTF-8 a Unicode naleznete na http://en.wikipedia.org/wiki/UTF-8.


  1. Jak se vyhnout MySQL 'Deadlock nalezený při pokusu o získání zámku; zkuste restartovat transakci'

  2. Sečíst sloupce s hodnotami null v oracle

  3. MySQL:Více řádků jako jeden řádek oddělený čárkami

  4. Napište rychlý datový rámec pandy do postgresu