MySQL 8+ Ошибка Row size too large (>8126): Исправление ROW_FORMAT=DYNAMIC в дампе и решение проблем с query_cache_type
21.07.2026
≈ 1 минута.
2 показа
Row size too large (> 8126). Changing some columns to TEXT or BLOB ...
MySQL 8 версии скоро станет обязательной для сайтов на Битрикс, если вы конечно хотите устанавливать обновленияПри переводе сайта на эту версию могут возникнуть проблемы, например такая ошибка при восстановлении из резервной копии
MySQL query error!
Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
Решение достаточно простое, нужно немного поправить дамп базы данных
sed -i 's/ROW_FORMAT=COMPACT/ROW_FORMAT=DYNAMIC/g' путь/к/дампу.sql
Далее можно продолжить восстановление базы данных из резервной копии
Unknown system variable 'query_cache_type'
Еще одна популярная ошибка[Bitrix\Main\DB\SqlQueryException]
Mysql query error: (1193) Unknown system variable 'query_cache_type' (400)
SET SESSION query_cache_type = 0
/var/www/html/bitrix/modules/main/lib/db/mysqlcommonconnection.php:417
#0: Bitrix\Main\DB\MysqlCommonConnection->createQueryException(integer, string, string)
MySQL 8.0 полностью удалил Query Cache — переменные query_cache_type и query_cache_size больше не существуют. Решение простое, убираем вызов с такими параметрами в after_connect.php и after_connect_d7.php
$DB->Query("SET NAMES 'utf8'");
//$DB->Query("SET SESSION query_cache_type = 0");