[Решено]Битрикс. Ошибка! innodb_strict_mode=ON, требуется OFF

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Ответить
[Решено]Битрикс. Ошибка! innodb_strict_mode=ON, требуется OFF
При "Полное тестирование системы" выдает ошибку: Ошибка! innodb_strict_mode=ON, требуется OFF
Частая ошибка в режиме работы MySQL на сайтах под управлением 1С-Битрикс. В модуле main версии 19.0.400 добавилась новая проверка innodb_strict_mode. Параметр innodb_strict_mode задаёт режим работы MySQL.

Если установлено значение innodb_strict_mode=ON, MySQL делает дополнительные проверки запросов, что в ряде случаев приводит к проблемам. Мы сталкивались с ситуациями, когда работающий проект переносится с одной установки на другую и перестаёт работать из-за этого.

Например, ошибка блокирует выполнение запроса и парализует работу:

Код
Row size too large (> 8126)


При этом она не связана со архитектурными ограничениями MySQL, это вопрос "синтетического усиления" правильности. Вопросы формирования SQL должны решаться на уровне приложения, а не базы. Здесь это приводит к проблемам.

РЕШЕНИЕ:
1.
Прописать в BitrixVM.

Открыть конфигурационный файл (три распространенных варианта расположения):
/etc/my.cnf
/etc/alternatives/my.cnf
/etc/bitrix-my.cnf

Добавить строку в блоке # InnoDB parameters
innodb_strict_mode = OFF

2. Мне он подошел так как на проекте, где появилась ошибка нет bitrixVM.

Для этого надо в файле after_connect.php добавить:
Код
$DB->Query("SET innodb_strict_mode='OFF'");

В файл after_connect_d7.php добавить:
Код
$connection->queryExecute("SET innodb_strict_mode='OFF'");
Услуги Системного Администратора - Работаю только с Юр. Лицами по договору обслуживания.
Спасибо помогло
правда чуть переделал по образу и подобию предыдущих строк
файл  after_connect_d7.php

$connection->queryExecute("SET innodb_strict_mode='OFF'");

ошибка пропала
На текущий момент времени 16.08.2022 г. это не работает.
Файла after_connect.php больше не существует.

Данная ошибка исправляется добавлением следующей строки в after_connect_d7.php :

$connection- >queryExecute("SET innodb_strict_mode=0");
Страницы: 1
Ответить
Форма ответов
Текст сообщения*
:) ;) :D 8-) :( :| :cry: :evil: :o :oops: :{} :?: :!: :idea:
Защита от автоматических сообщений. Введите символы, изображенные на этой картинке в поле ввода &quote;Код подтверждения&quote;.