Ошибка вида MySQL Query Error: [[1366] Incorrect string value: ‘\xB1N\xC30\x10\xFD…’ for column ‘COOKIES’ at row 1] или как изменить кодировку полей таблиц в MySQL

При переносе очередного сайта и разворачивание его на VDS-ке, у меня появилась ошибка:

Она была связана с тем, что не получалось сохраненить в БД куки из-за того что кодировка из скрипта не совпадала с кодировкой в БД.

Что бы это исправить, необходимо сменить кодировку в БД и определить эту кодировку в скриптах битрикса для подключения с базой данных. Т.к. ошибка может возникать из-за того, что пытается записать в БД символы, которые состоят не из 3 байтов, как в UTF-8, а из 4-х, то для хранения поля необходимо использовать utf8mb4. Поменять кодировку можно с помощью скрипта php:

Результат выполнения скрипта:

 

Затем в конфигах битрикса прописать:
— в файле bitrix/php_interface/after_connect_d7.php:

— в файле bitrix/php_interface/after_connect.php:

После, если система заработает, следеут сделать проверку системы:

Bitrix проверка системы
Если будут ошибки, то исправить их следуя подсказкам битрикса.

Если же ошибка не исправилась, значит необходимо поиграться с вариантами кодировки. В моем случае эти действия помогли, но не с первого раза. По итогу оставил кодировку utf8 и utf8_unicode_ci, и она чудо образом стала работать. Почему до этого выпадала ошибка, для меня осталось загадкой 🙂