Начать рассматривать вопрос по обновлению VMBitrix PHP и MySQL следует из https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=37&LESSON_ID=8831 Но я у себя на локальном не стал апгрейдить до MySql8 , зная о возможных потерях , которых удалось избежать, сделав бэкап из 5.7 в совместимый формат 8.0 и восстановив его на новый MySql8.0
Вопреки устаревшему тезису tf8mb4 кодировка в Битриксе не поддерживается потребители бодро сообщают о том, что ничто не мешает переконвертить базу в эту кодировку. Сейчас у меня крутятся пара проектов в этой кодировке, проблем не наблюдаю
Есть небольшие риски для некоммерческих CMS Например по запросу mysql 5.7 utf8mb4 более-менее оптимистичные статьи, хотя и требующие мозгового штурма
Исходя из задачи, связанной с mysql5.7+bitrix+utf8mb4, многое с 2018 года - изменилось.
Для CMS Bitrix помимо советов как обновить версию, уже есть простые и прямые советы, ЧТО ДЕЛАТЬ
Я бы мог посоветовать к одному из опубликованных скриптов для конвертации лишь добавить свой код, и тогда скрипт для переноса можно было-бы запустить из консоли
$_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__) . "/../../..");
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
@set_time_limit(0);
ini_set('memory_limit', '-1');
SHOW VARIABLES LIKE "%version%";
SHOW CHARACTER SET LIKE '%utf%';
For Schemas (or Databases - they are synonyms):
SELECT default_character_set_name FROM information_schema.SCHEMATA WHERE schema_name = "portal";
For Tables:
SELECT DISTINCT CCSA.character_set_name FROM information_schema.`TABLES` T, information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA WHERE CCSA.collation_name = T.table_collation AND T.table_schema = "portal" -- AND T.table_name = "b_crm_act";
For Columns:
SELECT character_set_name FROM information_schema.`COLUMNS` WHERE table_schema = "schemaname" AND table_name = "portal" AND column_name = "title";
#Комментарии в пользу
Новый MySQL 8.0 перевёл весь мир на utf8mb4. Устанавливается по умолчанию. Думаю, что специалисты в MySQL понимают важность utf8mb4 и видят его развитие в будущем. Такие мировые лидеры как Wordpress абсолютно без проблем используют utf8mb4 и все рады! Нет никаких проблем с сортировкой, хранением, кодировкой. У нас же битрикс как обычно, свойственно отечественному производителю, пишет: "Мы не поддерживаем utf8mb4". И вечная проблема у людей до сих пор во всех форумах по битриксу с кодировками utf8, cp1251, какие -то вечные проблемы с обновлениями, шаблонами, эмодзи, которые так или иначе связаны с кодировками. Может уже приведёте всё в один стандарт? Все эти галочки при установке "установить в utf8 или нет"? ... Может потратите время и сделаете всё по уму в конце концов?? Может как -то будете немного стремиться туда, куда развивается весь мир или так и будем бесконечно решать проблемы с кодировками, эмодзи, сортировкой, кракозябрами .. вам самим не надоело? Реально это уже напрягает. источник
#Затруднения, которые могут возникнуть
-Например, если часть настроек не изменяется, тогда Для percona 5.7 конфиг ** my.cnf** может быть немного другой