Как изменить кодировку для всех таблиц в MySQL в Modx Revolution
Как-то установил я Modx Revolution на хостинг, уже нечал работу, залил все нужные файлы и, вдруг, вижу: у меня вместо русских букв знаки вопроса (????????). Думаю, в чем дело. Недолго думая, понял, что случайно выбрал не ту кодировку при установке сайта. Хотел уже переустанавливать сайт, но стало жалко работу и время и нашел способ поменять кодировку в базе данных. Вот как это делается:
1. Меняем кодировку самой базы
Для начала идём в "Операции" и меняем кодировку самой базы на utf8_general_ci. Не забудьте поставить галочки Change all tables collations и Change all tables columns collations, чтобы программа автоматически поменяла везде кодировку.
После этого чистим кэш, пересохраняем ресурс или шаблон, где у нас что-то написано на русском. Проверяем. Если проблема осталась - делаем следующие шаги:
2. В столбце «Collation» отображается текущая кодировка:
3. Скопируйте этот код:
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` = 'имя_базы' ORDER BY 1
где:
utf8 — кодировка, которую нужно применить;
utf8_general_ci — сопоставление кодировки базы данных (шаг 2 — столбец «Сравнение»);
имя_базы — имя базы данных.
4. Переходим во вкладку SQL:
5. Выполняем SQL-запрос
Вставьте запрос из шага 3 в окно запроса MySQL и выполните его, нажав Go. В примере ниже я сформировал список запросов для всех таблиц базы данных, который нужно выполнить, чтобы изменить кодировку на utf8 и на сопоставление кодировки utf8_general_ci.
6. Отмечаем галочку "Full texts"
В качестве ответа на запрос появится список запросов для смены кодировки каждой таблицы. Раскройте вкладку Параметры (Options), установите чекбокс напротив пункта Полные тексты (Full texts) и нажмите Go:
7. Копируем код:
8. Еще раз выполняем SQL-запрос
Вернитесь на вкладку SQL. Вставьте запросы в окно запроса MySQL и нажмите Go:
Готово, вы успешно изменили кодировку во всех таблицах базы данных. Почистите еще раз кэш как следует и всё должно заработать. Успехов в работу и хорошего настроения. Пока.
Комментарии ()