((http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_strict_trans_tables Строгий режим)) появился в MySQL ещё начиная с версии 5.1, но только в версии 5.7 он стал включённым по умолчанию. Если вы недавно обновили сервер, и внезапно ваше приложение перестало работать, то причиной мог стать как раз этот режим. В Laravel вы можете исправить это прямо в коде: откройте файл настроек %%(t)database.php%% и добавьте ключ %%(t)strict%% со значением %%(t)false%%. Но если вы используете не Laravel приложение (мы столкнулись с этой проблемой в CodeIgniter и в CraftCMS), у вас не будет такой возможности. Давайте разберёмся, как можно отключить строгий режим глобально на любом сервере Laravel Forge (и любом другом сервере Ubuntu). == Ваш файл настроек == На самом деле MySQL проверяет ((https://dev.mysql.com/doc/refman/5.1/en/option-files.html пять различных мест)) на наличие файлов настроек. Поэтому я бы вам рекомендовал внести изменения в несколько мест сразу. MySQL проверяет: 1. %%(t)/etc/my.cnf%% 2. %%(t)/etc/mysql/my.cnf%% 3. %%(t)SYSCONFDIR/my.cnf%% 4. %%(t)$MYSQL_HOME/my.cnf%% 5. %%(t)~/my.cnf%% %%(t)~/.my.cnf%% существует для каждого пользователя, а третий и четвертый конфиги зависят от особенностей вашей среды. Поэтому давайте разберёмся с одним из двух первых конфигов. По умолчанию в Laravel Forge конфигурация MySQL находится в файле %%(t)/etc/mysql/my.cnf%%, поэтому давайте разместим наши изменения там. Соединимся по SSH с сервером и, используя Vim или Pico, отредактируем этот файл. == Ваши строки == Если вы прокрутите файл немного вниз, то вы найдете раздел %%(t)[mysqld]%%. Мы собираемся добавить новый ключ %%(t)sql_mode%%. В MySQL 5.7 значения для этого ключа по умолчанию такие: %%(t) STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION %% Строгий режим включается значением %%(t)STRICT_TRANS_TABLES%%. Давайте исправим %%(t)sql_mode%% и сделаем его таким же, как и значение по умолчанию, но только //без// строгого режима. %%(t) [mysqld] sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION %% Готово! Сохраните файл и перезапустите MySQL. В командной строке это будет примерно так %%(sh)sudo /etc/init.d/mysql restart%%, или из интерфейса Laravel Forge, откройте сервер, щёлкните значок //Restart Services// в нижней части, и выберите //Restart MySQL//. .(alert) При использовании CraftCMS, а также некоторых версий Laravel, вам, возможно, понадобится отключить и опцию "ONLY_FULL_GROUP_BY".