Тази статия описва как да конвертирате набора от знаци на MySQL база данни в UTF-8 кодиране (известно също като Unicode). Наборът за кодиране на символи UTF-8 поддържа много азбуки и знаци за голямо разнообразие от езици.
Въпреки че MySQL поддържа набора за кодиране на символи UTF-8, той често не се използва като набор от знаци по подразбиране по време на създаване на база данни и таблица. В резултат на това много бази данни използват набора от латински знаци, който може да бъде ограничаващ в зависимост от приложението.
Определяне на текущия набор за кодиране на знаци
За да определите кой набор за кодиране на символи MySQL база данни или таблица в момента използва:
- Влезте в своя A2 Hosting SSH акаунт.
- В командния ред въведете следната команда, като замените потребителското си име с вашето потребителско име:
mysql -u потребителско име -p
- В подканата за въвеждане на парола въведете паролата си. Когато въведете правилната парола, се появява подканата mysql>.
-
За да покажете текущия набор за кодиране на знаци за конкретна база данни, въведете следната команда в подканата mysql>. Заменете dbname с името на базата данни:
ИЗБЕРЕТЕ default_character_set_name ОТ information_schema.SCHEMATA S WHERE schema_name ="dbname";
-
За да покажете текущия набор за кодиране на символи за конкретна таблица в база данни, въведете следната команда в подканата mysql>. Заменете dbname с името на базата данни и tablename с името на таблицата:
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" И "table_name";
- За да излезете от mysql програма, въведете \q в подканата mysql>.
Преобразуване на кодирането на знаци, зададено в UTF-8
Уверете се, че сте архивирали базата данни, преди да започнете тази процедура! Можете да архивирате база данни MySQL с помощта на cPanel, phpMyAdmin или mysqldump програма.За да конвертирате кодирането на знаци, зададено в UTF-8:
- Влезте в своя A2 Hosting SSH акаунт.
- Създайте текстов файл с име .my.cnf . За да направите това, можете да използвате текстов редактор като Vim или Nano. Тази процедура показва как да използвате Nano. В командния ред въведете следната команда:
nano .my.cnf
-
Добавете следните редове към файла, като замените потребителското име с вашето потребителско име и паролата с вашата парола (уверете се, че паролата е затворена в кавички):
[client]user=usernamepassword="password"
- Когато редакциите приключат, натиснете Ctrl+X, въведете y, за да запазите файла, и след това натиснете Enter.
-
За да промените кодирането на набора от символи на UTF-8 за всички таблици в посочената база данни, въведете следната команда в командния ред. Заменете dbname с името на базата данни:
mysql --database=dbname -B -N -e "ПОКАЖИ ТАБЛИЦИ" | awk '{print "ЗАДАДЕТЕ external_key_checks =0; ПРОМЕНИ ТАБЛИЦА", $1, "КОНВЕРТИРАНЕ КЪМ НАБОР НА СИМВОЛИ utf8 COLLATE utf8_general_ci; SET external_key_checks =1; "}' | mysql --database=dbname
-
След като командата приключи, въведете следната команда, за да стартирате mysql програма:
mysql
-
За да промените кодирането на набора от символи на UTF-8 за самата база данни, въведете следната команда в подканата mysql>. Заменете dbname с името на базата данни:
ПРОМЕНЯ БАЗА ДАННИ dbname НАБОР НА СВОБОДА utf8 COLLATE utf8_general_ci;
- За да излезете от mysql програма, въведете \q в подканата mysql>.
-
За да изтриете .my.cnf файл, въведете следната команда в командния ред:
rm .my.cnf
- За да се уверите, че кодирането на набора от знаци вече е зададено на UTF-8, следвайте стъпките в процедурата за определяне на текущия кодиращ набор от знаци по-горе.
Повече информация
За повече информация относно UTF-8 и Unicode, моля, посетете http://en.wikipedia.org/wiki/UTF-8.