О web-разработке
и даже немного больше...

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

Проблема с несоответствием кодировки таблиц в базе MySQL является одной из распространённых причин некорректного отображения данных. Для правильного отображения необходимо использовать соответствующую кодировку данных для таблиц в базе MySQL. Поменять кодировку одной таблицы не так сложно, посредством одного запроса. Однако если таблиц большое количество, то тут одним запросом не обойтись. Нужно получить весь список таблиц, после чего сформировать для каждой таблицы запрос изменения кодировки. В нашем примере мы будем использовать утилиту phpMyAdmin которая практически есть на каждом хостинге. Итак, для начала, давайте выберем нашу базу данных:

Как вы можете заметить, таблиц целое множество. Кодировка таблиц указана в том же списке, в колонке «сравнение». Задача будет сменить кодировку таблиц на utf8. Чтобы сменить кодировку на utf8 нам следует знать не только нужную нам кодировку, но и сопоставление, в нашем случае это будет «utf8_unicode_ci». Смена кодировки таблиц производиться отдельной командой для каждой таблицы. Для того чтобы получить список с запросами для всех таблиц, нужно выполнить такую команду:

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

В данном запросе следует указать кодировки, сопоставление, а также название самой базы данных:

В качестве результата получаем сокращённый список запросов для каждой из таблиц. Чтобы строки отображались полностью, без сокращения, необходимо нажать на «Параметры» и выбрать «Полные тексты», и нажать на кнопку «Вперёд». Таким образом, будет выведен список запросов для смены кодировки для каждой таблицы.

Далее список этих запросов необходимо скопировать в текстовый редактор, либо в буфер обмена, затем выполнить их в консоли SQL. Для этого вам следует перейти на вкладку «SQL», и вставить в поле ввода список запросов:

После выполнения этого списка запросов, мы увидим сообщение с пустым результатом, это означает что запросы прошли успешно.

На этом операция смены кодировки таблиц в MySQL окончена.

Опубликован: 28.09.2020 г.

См. также:

Работа с базой данных в WordPress
SQL-запросы для смены домена в WordPress
Как изменить тип таблиц в MySQL?
Фильтрация по полю DateTime в MySQL
Меняем пароль root в MySQL 5.7
Исправление ошибок в базе MySQL
Восстановление пароля root в MySQL
Утилита Mytop для MySQL

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта