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:
- Přihlaste se ke svému účtu A2 Hosting SSH.
- 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
- Na výzvu Zadejte heslo zadejte heslo. Když zadáte správné heslo, zobrazí se výzva mysql>.
-
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";
-
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";
- 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:
- Přihlaste se ke svému účtu A2 Hosting SSH.
- 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
-
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"
- Po dokončení úprav stiskněte Ctrl+X, zadejte y pro uložení souboru a poté stiskněte Enter.
-
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
-
Po dokončení příkazu zadejte následující příkaz pro spuštění mysql program:
mysql
-
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;
- Chcete-li ukončit mysql zadejte \q do příkazového řádku mysql>.
-
Chcete-li odstranit soubor .my.cnf soubor, zadejte do příkazového řádku následující příkaz:
rm .my.cnf
- 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.