После установки Битрикса на новый сервер возникла проблема, при "самопроверке" CMS, сообщение:
Ошибка! Кодировка соединения с базой данных должна быть utf8, текущее значение: utf8mb3
Сам Битрикс рекомендовал:
но в конфигурационных файлах все был прописано верно.
Проверка Битрикса выполняется через Настройки - Инструменты - Проверка системы (/bitrix/admin/site_checker.php)
.
В итоге пришлось решать вопрос исправлением файла bitrix/modules/main/classes/general/site_checker.php, в блоке ниже, заменил
utf8 на utf8mb3 и
utf8_unicode_ci на utf8mb3_unicode_ci
if (defined('BX_UTF') && BX_UTF === true)
{
if ($character_set_connection != 'utf8mb3')
$strError = GetMessage("SC_CONNECTION_CHARSET_WRONG", array('#VAL#' => 'utf8', '#VAL1#' => $character_set_connection));
elseif ($collation_connection != 'utf8mb3_unicode_ci')
$strError = GetMessage("SC_CONNECTION_COLLATION_WRONG_UTF", array('#VAL#' => $collation_connection));
}
Ошибка! Сравнение для базы (utf8_general_ci) отличается от сравнения для соединения (utf8_unicode_ci)