На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Отключение строгого режима 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

Читайте также:




МТС, XP и служба DHCP клиент
Поля и методы в Java: рекурсия и стек вызовов метода


© upread.ru 2013-2021
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.