Ошибка innodb strict mode on требуется off

 

main (19.0.325) OK.
После последнего обновления «Корпоративный портал» main (19.0.400) в «Тестирование конфигурации» появилась ошибка «Ошибка! innodb_strict_mode=ON, требуется OFF» при проверке «Режим работы MySQL» переход на  VMBitrix 7.4.2 не помогает.
Установки:
$connection->queryExecute(«SET sql_mode=»»);
$DB->Query(«SET sql_mode=»»);
Не помогают.

 

Написал утром в техподдержку. Пишут что это ошибка мастера проверки. Исправление выйдет позже.

 

Пользователь 328495

Посетитель

Сообщений: 23
Баллов: 3
Регистрация: 15.05.2019

#3

16.10.2019 18:08:37

А мне написали:

Цитата
Добрый день!

В новой версии модуля main появилась проверка параметра innodb_strict_mode, у вас он в значении ON, для корректной работы требуется OFF, вам необходимо обратиться к вашему администратору сервера для исправления данного параметра.
Требуется внесение правок в конфигурацию сервера БД.

https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_strict_mode.

С Уважением,
Специалист отдела технической поддержки

Я исправил вот так:
(«SET innodb_strict_mode=’OFF'») по аналогии с («SET sql_mode=»») как help подсказывает:

в файлах:
/bitrix/php_interface/after_connect.php и /bitrix/php_interface/after_connect_d7.php

На мой вопрос:

Цитата
То есть, до этого момента нескольно лет работало не корректно? Или это требование исключительно нового модуля?

В таком случае, что работало не корректно?

пока не ответили.

 

Пользователь 328495

Посетитель

Сообщений: 23
Баллов: 3
Регистрация: 15.05.2019

#4

17.10.2019 12:31:04

Цитата
Зыков Илья написал:
То есть, до этого момента нескольно лет работало не корректно? Или это требование исключительно нового модуля?В таком случае, что работало не корректно?

Из трех заданных вопросов ни на один не ответили:

Цитата
Добрый день!
Да это необходимо для корректной работы актуальной версии сайта. Для исправления данной ошибки, если вы используете нашу виртуальную машину, то для исправления необходимо подключиться к серверу по FTP и добавить в файлы /etc/my.cnf, /etc/alternatives/my.cnf и /etc/bitrix-my.cnf строку

innodb_strict_mode = OFF

В блоке # InnoDB parameters

Централизованно данная правка будет внесена в версии виртуальной машины 7.4.10

С Уважением,
Специалист отдела технической поддержки

Разве я спрашивал как починить?

Более менее ответ получен здесь:

http://dev.1c-bitrix.ru/support/forum/messages/forum32/topic122887/message621578/­#message621578

 

Пользователь 1190

Посетитель

Сообщений: 65
Баллов: 6
Регистрация: 31.01.2005

#5

18.10.2019 03:43:48

Цитата
Зыков Илья написал:
Я исправил вот так: («SET innodb_strict_mode=’OFF'») по аналогии с («SET sql_mode=»») как help подсказывает:в файлах:/bitrix/php_interface/after_connect.php и /bitrix/php_interface/after_connect_d7.php

Помогло. Благодарю!

 

Пользователь 3152861

Заглянувший

Сообщений: 2
Регистрация: 30.04.2019

#6

29.10.2019 14:32:23

Цитата
Зыков Илья написал:
Я исправил вот так:
(«SET innodb_strict_mode=’OFF'») по аналогии с («SET sql_mode=»») как help подсказывает:
в файлах:
/bitrix/php_interface/after_connect.php и /bitrix/php_interface/after_connect_d7.php

Мне тоже помогло. Спасибо!

 

«1С-Битрикс24» — Интернет-магазин + CRM 20.0.0  тоже помогло

$DB->Query(«SET innodb_strict_mode=’OFF'»);                                                                        after_connect.php

$connection->queryExecute(«SET innodb_strict_mode=’OFF'»);                                                after_connect_d7.php      

 

Пользователь 2409753

Заглянувший

Сообщений: 1
Регистрация: 01.04.2020

#8

06.05.2020 17:01:56

Цитата
soltI написал:
$connection->queryExecute(«SET innodb_strict_mode=’OFF'»);

Большое спасибо за точное описание что куда и как вставлять, для несведущих это очень важно и полезно =) Мне помогло, всем спасибо)

 

то же самое после обновления:
2021-Jan-01 17:16:23 Режим работы MySQL (check_mysql_mode): Fail Ошибка! innodb_strict_mode=ON, требуется OFF
поправил

Спасибо !

 

Не помогает на самой последней версии Битрикс. Сайт перестает работать.

 

В новых версиях помогло вставить $this->queryExecute(«SET innodb_strict_mode=’OFF'»); в after_connect_d7.php      

 

Пользователь 7125764

Заглянувший

Сообщений: 16
Баллов: 1
Регистрация: 15.03.2023

#12

16.03.2023 11:32:37

Цитата
написал:
В новых версиях помогло вставить $this->queryExecute(«SET innodb_strict_mode=’OFF'»); в after_connect_d7.php      

спасибо, заработало! предыдущие решения ошибки на сайте вызывали, не открывался


Частая ошибка в режиме работы MySQL на сайтах под управлением 1С-Битрикс. В модуле main версии 19.0.400 добавилась новая проверка innodb_strict_mode. Параметр innodb_strict_mode задаёт режим работы MySQL.

Решение проблемы с innodb_strict_mode

Первый вариант

  1. Открываем в левом меню «Контент» => «Структура сайта» => «Файлы и папки».
  2. Переходим в директорию: /bitrix/php_interface/
  3. Открываем файл: after_connect_d7.php в режиме редактирования PHP кода.
  4. Вставляем строку: $connection->queryExecute("SET innodb_strict_mode=0");
  5. Сохраняем

Полный конфиг файла after_connect_d7.php

	
$connection = BitrixMainApplication::getConnection();
$connection->queryExecute("SET NAMES 'utf8'");
$connection->queryExecute('SET collation_connection = "utf8_unicode_ci"');
$connection->queryExecute('SET sql_mode=""');
$connection->queryExecute("SET innodb_strict_mode=0");
	

В этой же директории /bitrix/php_interface/

  1. Открываем файл: after_connect.php в режиме редактирования PHP кода.
  2. Вставляем строку: $DB->Query("SET innodb_strict_mode=0");
  3. Сохраняем

Полный конфиг файла after_connect.php

	
$DB->Query("SET NAMES 'utf8'");
$DB->Query('SET collation_connection = "utf8_unicode_ci"');
$DB->Query("SET sql_mode=''");
$DB->Query("SET innodb_strict_mode=0");
	

Запускаем проверку системы еще раз.

Второй вариант

Если первый вариант не помог, значит необходимо внести правку в настройках MySQL. Для 1С-Bitrix окружения в файле /etc/mysql/conf.d/z_bx_custom.cnf добавить innodb_strict_mode = OFF

	
[mysqld]
innodb_strict_mode = OFF
	

После сохранения надо перезагрузить MySQL

	
service mysqld restart
	

После этого ошибки при проверке сайта не будет.

Просмотров: 33540

  • 2.96
  • 1
  • 2
  • 3
  • 4
  • 5

Голосов: 663

Продолжая использовать этот сайт, Вы принимаете условия политики конфиденциальности и даёте согласие на обработку пользовательских данных. Подробнее

Продолжая использовать этот сайт, Вы принимаете условия политики конфиденциальности и даёте согласие на обработку пользовательских данных (файлов cookie), в том числе с использованием систем аналитики «Яндекс. Метрика» и «Google Analytics», (IP-адрес; версия ОС; версия веб-браузера; сведения об устройстве (тип, производитель, модель); разрешение экрана и количество цветов экрана; наличие программного обеспечения для блокирования рекламы; наличие Cookies; наличие JavaScript; язык ОС и Браузера; время, проведенное на сайте; глубина просмотра; действия пользователя на сайте; географические данные) в целях определения посещаемости сайта. Отказаться от обработки пользовательских данных и использования «cookie» можно, выбрав соответствующие настройки в браузере. Однако это может повлиять на работу некоторых функций сайта. Скрыть

Окно с неприятным текстом «Ошибка! innodb_strict_mode=ON, требуется OFF. Переменная sql_mode в MySQL должна быть пустая, текущее значение: NO_ENGINE_SUBSTITUTION» появляется, когда происходит проверка режима работоспособности работы базы данных в CMS Битрикс. Возможность проверить систему управления сайтом на наличие проблем появилась сравнительно недавно благодаря новой введенной опции в CMS Битрикс. С помощью этой опции можно также проверить:

  • работоспособность почтовой отправки электронных писем, связанной с веб-проектом;

  • работоспособность стека памяти;

  • работоспособность агентов на «cron»;

  • основные характеристики работы PHP;

  • и др.

Напомним, CMS Битрикс — это профессиональная коммерческая платформа для создания и управления сайтами от российских разработчиков. Эта CMS подходит для разного вида сайтов любой сложности. Так как продукт коммерческий и стоит недешево, основная масса его клиентов — это средний и крупный бизнес. На этой CMS разрабатывают крупные интернет-магазины, социальные сети, сайты финансовых организаций и др. CMS Битрикс отличается высокой надежностью, но даже у этой системы иногда возникает ошибка «innodb_strict_mode=ON, требуется OFF». Подробнее об этой ошибке и как ее исправить читайте ниже по статье.

Ошибка «innodb_strict_mode=ON, требуется OFF»

Ошибка «innodb_strict_mode=ON, требуется OFF» связана с некорректной работой базы данных сайта. Она входит в категорию «критических», потому что может полностью заблокировать отправку запросов к базе данных. А для большинства сайтов блокировка запросов к базе данных означает временную недееспособность или полную остановку всего ресурса. Остановка ресурса — это потеря потенциальных и существующих клиентов, поэтому исправлять эту ошибку нужно сразу же, как только появилось соответствующее сообщение.

Как исправляется ошибка «innodb_strict_mode=ON, требуется OFF»

Исправить эту ошибку можно двумя способами. Вариант первый:

  1. Пройти по пути в основном меню административной панели хостинга, которое располагается слева: «Управление файлами сайта-Структура сайта-Файлы и папки». Пункты меню могут называться по-другому, так как название пунктов зависит от вашего хостинга.

  2. Там необходимо отыскать расположение документов по пути «/bitrix/php_interface/».

  3. В этом расположении нужно найти и открыть, чтобы отредактировать, документ: «after_connect_d7.php».

  4. Вставить в самый низ этого документа небольшое сообщение: «$connection- >queryExecute(«SET innodb_strict_mode=0»);».

  5. Сохранить изменения.

  6. В этом же расположении найти другой документ, чтобы его отредактировать — «after_connect.php».

  7. В самый низ этого документа нужно вставить следующее сообщение: «$DB- >Query(«SET innodb_strict_mode=0»)».

  8. Сохранить изменения.

После этого можно проверить работоспособность веб-проекта еще раз. Ошибка «innodb_strict_mode=ON, требуется OFF» должна исчезнуть. Бывает такое, что первый вариант исправления ошибки не регулирует ситуацию. Тогда нужно попробовать второй вариант исправления, который подразумевает внесение изменений в конфигурацию CMS Битрикс, а именно в документ, который отвечает за работу с базой данных. Для этого:

  1. Войдите в панель управления вашего хостинга.

  2. Отыщите месторасположение файлов вашего сайта. Обычно они расположены в пункте меню «Файловый менеджер» или «Файлы сайта». Название пункта зависит от вашего хостинга.

  3. Найдите соответствующий файл «z_bx_custom.cnf», который расположен по пути: «/etc/mysql/conf.d/z_bx_custom.cnf».

  4. В самый низ этого документа необходимо вставить строчку: «innodb_strict_mode=OFF».

  5. Сохраните изменения.

Заключение

Ошибка «innodb_strict_mode=ON, требуется OFF» решается одним из описанных выше способов. Решать ее необходимо максимально быстро, так как ее возникновение чревато блокировкой сайта.

Опция «Проверка системы» в CMS Битрикс позволяет проверить соответствие настроек сервера требованиям CMS и вашего сайта. При запуске этой опции Битрикс, как правило, приводит несколько ошибок и замечаний. В этой статье мы рассмотрим, как их исправить.

Режим работы MySQL

Уведомление:

Ошибка! innodb_strict_mode=ON, требуется OFF. Переменная sql_mode в MySQL должна быть пустая, текущее значение: NO_ENGINE_SUBSTITUTION

Эта ошибка критична. Она может привести к блокировке запросов к базе данных, что практически означает остановку работы сайта. 

Решение:

Необходимо внести изменения в файлы конфигурации Bitrix, в которых задаются параметры базы данных, и указать в них нужные значения. Отредактировать файлы можно, например, с помощью подключения по FTP/SFTP.

В файл /директория_сайта/bitrix/php_interface/after_connect.php под уже имеющимися строками и до символов ?> добавьте:

$DB->Query("SET sql_mode=''");
$DB->Query("SET innodb_strict_mode=0");

В файл /директория_сайта/bitrix/php_interface/after_connect_d7.php под уже имеющимися строками и до символов ?> добавьте:

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

После этого проверка Bitrix пройдет успешно.

Выполнение агентов на cron

Уведомление:

Замечание: Агенты выполняются на хитах, рекомендуется перенести их выполнение на cron

Это замечание некритично. В Битрикс предусмотрен внутренний планировщик задач (агентов). Данное замечание влияет на то, насколько точно по времени сработают запланированные задачи. Грубо говоря, скрипты сайта выполняются, только когда его страницы кто-то посещает. Если нет посещений, то и таймер работать не будет. Cron позволяет полностью решить проблему с планированием задач.

Решение:

Чтобы перенести работу непериодических агентов (и передачу почты) на Сron, необходимо установить константу BX_CRONTAB_SUPPORT.

Для этого добавьте в файл /директория_сайта/bitrix/php_interface/dbconn.php строку:

define('BX_CRONTAB_SUPPORT', true);

Затем нужно добавить задачу в Crontab. Это можно сделать инструментами вашей панели управления или с помощью cli.

Уведомление:

Ошибка! Не настроен запуск cron_events.php на cron

Эта ошибка может возникнуть, если в пункте выше вы только добавили константу, но не добавили задачу cron. Без настройки задачи в crontab будет остановлена часть агентов, в том числе с сайта перестанет отправляться почта. Письма будут накапливаться в очередь и отправляться по частям после устранения ошибки.

Решение:

Выполните приведенную выше инструкцию по добавлению задачи cron, и ошибка будет устранена.

Обязательные параметры PHP

Уведомление:

Ошибка! Значение max_input_vars должно быть не ниже 10000

Эта ошибка не влияет на работоспособность сайта напрямую, но может отразиться на работе с большими формами в административной панели. При работе с инфоблоками низкое значение параметра max_input_vars может вызвать проблемы с сохранением настроек, поэтому система выделяет эту ошибку как критическую.

Решение:

Необходимо добавить следующую строку в файл /директория_сайта/.htaccess:

php_value max_input_vars 11000

  • Ошибка injection system fault
  • Ошибка injection fault на рено сценик 2
  • Ошибка injection fault на рено меган 2 дизель
  • Ошибка initramfs при загрузке linux
  • Ошибка initializeprintprovider для поставщика inetpp dll