Хостинг

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

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

$connection = Bitrix\Main\Application::getConnection();

$connection->queryExecute(“SET sql_mode=””);

$connection->queryExecute(“SET innodb_strict_mode=0”);

Ошибка, которую вы видите, говорит о том, что в MySQL установлена переменная sql_mode с значением NO_ENGINE_SUBSTITUTION, что может вызывать проблемы при работе с некоторыми запросами или при создании/обновлении таблиц.

 Чтобы исправить эту ошибку и очистить переменную `sql_mode`, выполните следующие шаги:

1. Проверьте текущие значения sql_mode:

 Для этого нужно выполнить следующий SQL-запрос в MySQL:

sql Скопировать

Закрыть блок

SHOW VARIABLES LIKE 'sql_mode';
 Это покажет текущее значение переменной `sql_mode`.

2. Измените sql_mode на пустое значение:

 Чтобы временно очистить `sql_mode`, выполните команду:

sql Скопировать

Закрыть блок

SET GLOBAL sql_mode = '';
 Эта команда очистит `sql_mode` на уровне глобальных настроек для всех сессий. Однако эта настройка сбрасывается при перезагрузке MySQL.

3. Перманентное изменение в конфигурации:

 Чтобы переменная `sql_mode` оставалась пустой после перезагрузки MySQL, нужно изменить конфигурационный файл `my.cnf` или `my.ini` (в зависимости от операционной системы).


-

	 Найдите файл конфигурации MySQL. Обычно он находится в одном из следующих мест:





	<li>`/etc/mysql/my.cnf`

	- `/etc/my.cnf`

	- `/etc/mysql/mysql.conf.d/mysqld.cnf`
-
	 Откройте файл для редактирования:

bash Скопировать

Закрыть блок

sudo nano /etc/mysql/my.cnf
- В разделе `[mysqld]` добавьте или измените строку, чтобы она выглядела так:

ini Скопировать

Закрыть блок

[mysqld]
sql_mode=""
- Перезапустите MySQL:

bash Скопировать

Закрыть блок

sudo systemctl restart mysql

4. Проверьте изменения:

 После этого вы можете снова выполнить запрос для проверки значения переменной:

sql Скопировать

Закрыть блок

SHOW VARIABLES LIKE 'sql_mode';
 Теперь значение должно быть пустым, и ошибка больше не должна возникать.