Страница 1 из 1

Как поменять кодировку всех таблиц в MySQL

Добавлено: 24 авг 2017, 10:46
Longipongeoos
Меняем кодировку всех таблиц в MySQL

Код: Выбрать все

ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]

Типа:

Код: Выбрать все

ALTER TABLE `mydatabase`.`auth_group_permissions` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Ну а если табличек много, то MySQL сервер версии 5.0 и выше, умеет выполнить вот такой вот запрос:

Код: Выбрать все

SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') as sqlcode
  FROM `information_schema`.`TABLES` t
 WHERE 1
   AND t.`TABLE_SCHEMA` = 'db_name'
 ORDER BY 1

Где вместо db_name необходимо поменять на реальное имя базы данных.

Выполнив этот запрос, вы получите список SQL запросов, модифицирующий кодировку таблиц, он будет выглядеть примерно так:

Код: Выбрать все

ALTER TABLE `mydatabase`.`auth_group_permissions` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE `mydatabase`.`auth_group` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
... много-много строчек ...
ALTER TABLE `mydatabase`.`auth_message` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Далее копируем выданные скрипты и выполняем его в окошке SQL запросов.
Результатом будет изменение кодировки во всех таблицах MySQL базы данных.
Источник: http://likbezz.ru/viewtopic.php?t=198