Изменение кодировки всех таблиц в MySQL

Иногда в MySQL вместо данных отображается бессвязный набор символов. Это связано с неверно установленной кодировкой. Чтобы данные отображались корректно, нужно настроить верную кодировку для каждой таблицы. Ниже мы покажем, как это сделать сразу для всех таблиц.

1. Авторизуйтесь в phpMyAdmin.
2. Кликните по названию нужной базы данных:

В столбце «Сравнение» вы увидите кодировки, установленные для базы данных:

3. Скопируйте запрос:

SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET нужная_кодировка COLLATE сопоставление;') as sqlcode
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = 'имя_базы'
ORDER BY 1

Где:

  • нужная_кодировка — кодировка, которую вы хотите применить,  
  • сопоставление — нужное сопоставление кодировки (шаг 2 — столбец «Сравнение»), 
  • имя_базы — имя базы данных.

4. Откройте раздел SQL:

5. В окно запроса MySQL добавьте запрос из шага 3 и нажмите Вперёд, чтобы выполнить его:

Пример запроса для всех таблиц базы данных, чтобы изменить кодировку на utf8 и сопоставление кодировки на utf8_general_ci

6. В ответ на запрос отобразится список запросов для смены кодировки каждой таблицы. Перейдите на вкладку Параметры и галочкой отметьте пункт «Полные тексты». Затем кликните Вперёд:

7. Скопируйте запросы:

8. Перейдите на вкладку SQL и добавьте запросы в окно запросов MySQL. Затем нажмите Вперёд:

Готово, вы изменили кодировку во всех таблицах MySQL.
 

Если вы не нашли ответ, спросите у нас!
Написать в поддержку