среда, 13 июня 2018 г.

MySQL 5.7 Ошибка "is incompatible with sql_mode=only_full_group_by"

При запуске запроса с GROUP_BY можно столкнуться с ошибкой "is incompatible with sql_mode=only_full_group_by" что бы избавиться от нее нужно либо править свои запросы либо отключить данный режим sql_mode=only_full_group_by. В MySQL 5.7 он включен по умолчанию.
Для отключения нужно в конфиг my.cnf в секцию [mysqld] добавить следующий параметр:
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION


Перезапускаем сервис и все работает.

Если хотите обойтись без рестарта сервиса то можно сменить глобальную переменную:

mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

понедельник, 16 апреля 2018 г.

Ошибка Perl warning Setting locale failed в Ubuntu

Несколько раз столкнулся со следующей ошибкой в процессе установки или обновления пакетов в Ubuntu 16.04:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
 LANGUAGE = (unset),
 LC_ALL = (unset),
 LANG = "en_US.utf8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Она не критична пакеты нормально устанавливаются и решается довольно просто перегенерацией и конфигурированием новых локалей.

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales

Команда dpkg-reconfigure откроет диалоговое окно для выбора желаемого языкового стандарта. 

Либо второй способ, команда:

update-locale LANG=en_US.UTF-8

Выходим из терминала и открываем новый и все работает.