Отключение строгого режима MySQL


Некоторые программы, использующие базы данных, (сайты, CMS и CRM) могут не работать (не полноценно функционировать) при включённом строгом режиме SQL в MySQL. Например, Vtiger CRM 6 не даст сохранить изменения в сущностях некоторых модулей. А Vtiger CRM 7 не позволит вам импортировать лиды, выдаст такую ошибку

Error. Sorry! Attempt to access restricted file. -modules//.php
Соответственно, форки этой крм, SalesPlatform, например, тоже будут выдавать такие ошибки.



В базе данных будут ошибки похожие на такие

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'support_desk.mod_users_groups.group_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Этот строгий режим SQL можно отключить. Ниже я покажу, как это делается в Ubuntu. Для начала требуется подключение по SSH. Подключитесь к серверу как пользователь root и создайте этот файл:

/etc/mysql/conf.d/disable_strict_mode.cnf
Откройте файл и введите эти две строки:

[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Или

[mysqld]
sql_mode=””
Обратите внимание, что права у файлов должны быть 755, а не 777 – иначе мускуль не подхватит конфиг. Перезагрузите MySQL с помощью этой команды:

sudo service mysql restart
Это изменение отключает два параметра режима SQL, STRICT_TRANS_TABLES и ONLY_FULL_GROUP_BY, которые были добавлены в MySQL 5.7 и вызывают проблемы для некоторых старых приложений.

Подтверждение того, что строгий режим SQL отключен

Вы можете убедиться в том, что строгий режим SQL отключен, выполнив эту команду от имени root:

sudo mysql -i -BN -e 'SELECT @@sql_mode' | grep -E 'ONLY_FULL_GROUP_BY|STRICT_TRANS_TABLES'
Если строгий режим отключен, вы не увидите никаких выходных данных из этой команды. Если отключение строгого режима вызывает у вас какие-либо проблемы, вы можете снова включить его, удалив этот файл и снова перезапустив MySQL.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, базы данных, Ubuntu, mysql




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.



Статичная страница на HTML с обработкой AJAX, PHP
Урок 18. Сборщик мусора и метод finalize в Java
Как научиться Java