Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да конвертирате MySQL база данни в UTF-8 кодиране

Тази статия описва как да конвертирате набора от знаци на MySQL база данни в UTF-8 кодиране (известно също като Unicode). Наборът за кодиране на символи UTF-8 поддържа много азбуки и знаци за голямо разнообразие от езици.

Въпреки че MySQL поддържа набора за кодиране на символи UTF-8, той често не се използва като набор от знаци по подразбиране по време на създаване на база данни и таблица. В резултат на това много бази данни използват набора от латински знаци, който може да бъде ограничаващ в зависимост от приложението.

Определяне на текущия набор за кодиране на знаци

За да определите кой набор за кодиране на символи MySQL база данни или таблица в момента използва:

  1. Влезте в своя A2 Hosting SSH акаунт.
  2. В командния ред въведете следната команда, като замените потребителското си име с вашето потребителско име:
    mysql -u потребителско име -p
  3. В подканата за въвеждане на парола въведете паролата си. Когато въведете правилната парола, се появява подканата mysql>.
  4. За да покажете текущия набор за кодиране на знаци за конкретна база данни, въведете следната команда в подканата mysql>. Заменете dbname с името на базата данни:

    ИЗБЕРЕТЕ default_character_set_name ОТ information_schema.SCHEMATA S WHERE schema_name ="dbname";
  5. За да покажете текущия набор за кодиране на символи за конкретна таблица в база данни, въведете следната команда в подканата 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"; 
  6. За да излезете от mysql програма, въведете \q в подканата mysql>.

Преобразуване на кодирането на знаци, зададено в UTF-8

Уверете се, че сте архивирали базата данни, преди да започнете тази процедура! Можете да архивирате база данни MySQL с помощта на cPanel, phpMyAdmin или mysqldump програма.

За да конвертирате кодирането на знаци, зададено в UTF-8:

  1. Влезте в своя A2 Hosting SSH акаунт.
  2. Създайте текстов файл с име .my.cnf . За да направите това, можете да използвате текстов редактор като Vim или Nano. Тази процедура показва как да използвате Nano. В командния ред въведете следната команда:
    nano .my.cnf
  3. Добавете следните редове към файла, като замените потребителското име с вашето потребителско име и паролата с вашата парола (уверете се, че паролата е затворена в кавички):

    [client]user=usernamepassword="password"
  4. Когато редакциите приключат, натиснете Ctrl+X, въведете y, за да запазите файла, и след това натиснете Enter.
  5. За да промените кодирането на набора от символи на 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
  6. След като командата приключи, въведете следната команда, за да стартирате mysql програма:

    mysql
  7. За да промените кодирането на набора от символи на UTF-8 за самата база данни, въведете следната команда в подканата mysql>. Заменете dbname с името на базата данни:

    ПРОМЕНЯ БАЗА ДАННИ dbname НАБОР НА СВОБОДА utf8 COLLATE utf8_general_ci;
  8. За да излезете от mysql програма, въведете \q в подканата mysql>.
  9. За да изтриете .my.cnf файл, въведете следната команда в командния ред:

    rm .my.cnf
  10. За да се уверите, че кодирането на набора от знаци вече е зададено на UTF-8, следвайте стъпките в процедурата за определяне на текущия кодиращ набор от знаци по-горе.

Повече информация

За повече информация относно UTF-8 и Unicode, моля, посетете http://en.wikipedia.org/wiki/UTF-8.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Мога ли сляпо да заменя всички mysql_ функции с mysqli_?

  2. Ръководство за проектиране на база данни за система за поръчки в ресторант в MySQL

  3. Съхранение и показване на Unicode низ (हिन्दी) с помощта на PHP и MySQL

  4. Не мога да използвам mysql_* функции след надграждане на PHP

  5. Разгръщане на сървър Percona в хибриден облак