Ошибка кодировки таблиц без возможности автоматического исправления

19.04.2023

В случае появления ошибки при проверке системы (тестирование конфигурации): "Ошибка! Кодировки таблиц имеют ошибки, общее число ошибок N, из них автоматически могут быть исправлены: 0" требуется:

  1. Выполнить резервное копирование базы данных сайта перед началом проведения процедуры во избежание получения неисправимых ошибок в случае неверных действий.
  2. Кликнуть на иконку вопросительного знака в правой части строки с вышеуказанной ошибкой.
  3. В открывшемся окне кликнуть по ссылке "Подробности в журнале проверки системы".
  4. На экране будет отображен список ошибок по каждой таблице и полям с неверной кодировкой. Скопируйте все строки с ошибками кодировки.
  5. Вставьте текст с ошибками в расширенный текстовый редактор, например Notepad++ (Windows) или Sublime Text (Mac).
  6. Удалите все строки, где указаны ошибки кодировки в полях. Оставьте только строки с ошибками таблиц.

Например, из текста ошибок:

Кодировка таблицы "b_b24connector_button_site" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "SITE_ID" таблицы "b_b24connector_button_site" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка таблицы "b_calendar_event_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "VENDOR_EVENT_ID" таблицы "b_calendar_event_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "SYNC_STATUS" таблицы "b_calendar_event_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "ENTITY_TAG" таблицы "b_calendar_event_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "VERSION" таблицы "b_calendar_event_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "VENDOR_VERSION_ID" таблицы "b_calendar_event_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "RECURRENCE_ID" таблицы "b_calendar_event_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "DATA" таблицы "b_calendar_event_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка таблицы "b_calendar_section_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "VENDOR_SECTION_ID" таблицы "b_calendar_section_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "SYNC_TOKEN" таблицы "b_calendar_section_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "PAGE_TOKEN" таблицы "b_calendar_section_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "ACTIVE" таблицы "b_calendar_section_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "LAST_SYNC_STATUS" таблицы "b_calendar_section_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "VERSION_ID" таблицы "b_calendar_section_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "IS_PRIMARY" таблицы "b_calendar_section_connection" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка таблицы "b_catalog_exported_product" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "SERVICE_ID" таблицы "b_catalog_exported_product" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка поля "ERROR" таблицы "b_catalog_exported_product" (utf8mb4) отличается от кодировки базы (utf8)
Кодировка таблицы "b_catalog_exported_product_queue" (utf8mb4) отличается от кодировки базы (utf8)

Должен получиться следующий текст:

Кодировка таблицы b_b24connector_button_site (utf8mb4) отличается от кодировки базы (utf8)
Кодировка таблицы b_calendar_event_connection (utf8mb4) отличается от кодировки базы (utf8)
Кодировка таблицы b_calendar_section_connection (utf8mb4) отличается от кодировки базы (utf8)
Кодировка таблицы b_catalog_exported_product (utf8mb4) отличается от кодировки базы (utf8)
Кодировка таблицы b_catalog_exported_product_queue (utf8mb4) отличается от кодировки базы (utf8)

Затем требуется оставить только названия таблиц. Должно получиться:

b_b24connector_button_site
b_calendar_event_connection
b_calendar_section_connection
b_catalog_exported_product
b_catalog_exported_product_queue

После необходимо добавить следующие запросы в начало строк и после названия таблиц: ALTER TABLE --- CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Должен получиться следующий текст:

ALTER TABLE b_b24connector_button_site CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE b_calendar_event_connection CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE b_calendar_section_connection CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE b_catalog_exported_product CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE b_catalog_exported_product_queue CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Копируем получившийся результат. Затем переходим в раздел администраторской части сайта "SQL запрос" и в текстовое поле вставляем ранее скопированный текст результата. Нажать кнопку "Выполнить запрос".

Таким образом одновременно выполняется множество запросов по изменению кодировки таблиц базы данных для исправления ошибки.