W tym artykule opisano, jak przekonwertować zestaw znaków bazy danych MySQL na kodowanie UTF-8 (znane również jako Unicode). Zestaw kodowania znaków UTF-8 obsługuje wiele alfabetów i znaków dla wielu różnych języków.
Chociaż MySQL obsługuje zestaw kodowania znaków UTF-8, często nie jest używany jako domyślny zestaw znaków podczas tworzenia bazy danych i tabel. W rezultacie wiele baz danych używa zestawu znaków łacińskich, który może być ograniczony w zależności od aplikacji.
Określanie bieżącego zestawu kodowania znaków
Aby określić, który zestaw kodowania znaków jest aktualnie używany w bazie danych lub tabeli MySQL:
- Zaloguj się na swoje konto A2 Hosting SSH.
- W wierszu poleceń wpisz następujące polecenie, zastępując nazwę użytkownika swoją nazwą użytkownika:
mysql -u nazwa użytkownika -p
- Po wyświetleniu monitu Wprowadź hasło wpisz swoje hasło. Po wpisaniu prawidłowego hasła pojawi się monit mysql>.
-
Aby wyświetlić bieżący zestaw kodowania znaków dla określonej bazy danych, wpisz następujące polecenie w wierszu polecenia mysql>. Zastąp dbname nazwą bazy danych:
SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name ="dbname";
-
Aby wyświetlić bieżący zestaw kodowania znaków dla określonej tabeli w bazie danych, wpisz następujące polecenie w wierszu polecenia mysql>. Zastąp dbname nazwą bazy danych, a tablename nazwą tabeli:
SELECT CCSA.character_set_name FROM information_schema.`TABLES`T,information_schema.`COLLATION_CHARACTER_SET_APPLICBILITY` CCSA WHERE CCSA.collation_name =T.table_collation AND T.table_schema ="dbname" AND T.table_name ="wstępna nazwa_tabeli";
- Aby wyjść z mysql wpisz \q po znaku zachęty mysql>.
Konwertowanie zestawu kodowania znaków na UTF-8
Upewnij się, że wykonałeś kopię zapasową bazy danych przed rozpoczęciem tej procedury! Możesz wykonać kopię zapasową bazy danych MySQL za pomocą cPanel, phpMyAdmin lub mysqldump program.Aby przekonwertować zestaw kodowania znaków na UTF-8:
- Zaloguj się na swoje konto A2 Hosting SSH.
- Utwórz plik tekstowy o nazwie .my.cnf . Aby to zrobić, możesz użyć edytora tekstu, takiego jak Vim lub Nano. Ta procedura pokazuje, jak korzystać z Nano. W wierszu poleceń wpisz następujące polecenie:
nano .my.cnf
-
Dodaj następujące wiersze do pliku, zastępując nazwę użytkownika swoją nazwą użytkownika, a hasło hasłem (upewnij się, że hasło jest ujęte w cudzysłów):
[client]user=usernamepassword="hasło"
- Po zakończeniu edycji naciśnij Ctrl+X, wpisz y, aby zapisać plik, a następnie naciśnij Enter.
-
Aby zmienić kodowanie zestawu znaków na UTF-8 dla wszystkich tabel w określonej bazie danych, wpisz następujące polecenie w wierszu poleceń. Zastąp dbname nazwą bazy danych:
mysql --database=nazwa_bazy_danych -B -N -e "POKAŻ TABEL" | awk '{print "USTAW Foreign_key_checks =0; ZMIEŃ TABELĘ", $1, "KONWERTUJ NA ZESTAW ZNAKÓW utf8 UKŁADANIE utf8_general_ci; USTAW Foreign_key_checks =1; "}' | mysql --database=nazwa_bazy
-
Po zakończeniu polecenia wpisz następujące polecenie, aby uruchomić mysql program:
mysql
-
Aby zmienić kodowanie zestawu znaków na UTF-8 dla samej bazy danych, wpisz następujące polecenie w wierszu polecenia mysql>. Zastąp dbname nazwą bazy danych:
ZMIEŃ BAZA DANYCH nazwa bazy danych ZESTAW ZNAKÓW utf8 UKŁADANIE utf8_general_ci;
- Aby wyjść z mysql wpisz \q po znaku zachęty mysql>.
-
Aby usunąć .my.cnf plik, wpisz następujące polecenie w wierszu poleceń:
rm .my.cnf
- Aby sprawdzić, czy kodowanie zestawu znaków jest teraz ustawione na UTF-8, wykonaj czynności opisane w powyższej procedurze Określanie bieżącego zestawu kodowania znaków.
Więcej informacji
Aby uzyskać więcej informacji na temat UTF-8 i Unicode, odwiedź http://en.wikipedia.org/wiki/UTF-8.