Долгое хранение корзины в интернет-магазине
Рассмотрим варианты популярные варианты хранения товаров в корзине в интернет-магазине. Обозначим плюсы и минусы таких хранений. Рассмотрим варианты долгосрочного хранения корзины.
Иногда случается, что требуется завести старый сайт на новом программном обеспечении. В моем случае, сайт работающий на mysql 5.5 потребовалось для отладки завести на mysql 5.7. Тут же возникла ошибка "42000":
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'db.books' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Это все из-за того, что в mysql 5.7 введены правила, которые для ускорения работы с базой препятствуют работе некоторых запросов (если я понял правильно). На продакшене стоит переписать данный запрос. Так как будет потеряна производительность. Но на локалке можно произвести действия описанные ниже.
Пробовал для Ubuntu 18.04, mysql 5.7 (как и писал выше).
В конец файла /etc/mysql/my.cnf добавляем строки:
sudo nano /etc/mysql/my.cnf
Вписываем в конец:
[mysqld]
sql_mode="NO_ENGINE_SUBSTITUTION"
Рестарт mysql
sudo service mysql stop
sudo service mysql start
Предупреждение
Изначально в 5.7 sql_mode действуют такие ключи:
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
Своим действием мы отключаем все ключи, вгоняя mysql 5.7 в нестандартный режим работы, подобный для версии mysql 5.6.
Не используйте это на продакшене.
Рассмотрим варианты популярные варианты хранения товаров в корзине в интернет-магазине. Обозначим плюсы и минусы таких хранений. Рассмотрим варианты долгосрочного хранения корзины.
Рассмотрим настройку доступа MySql 5.7 на Ubuntu 18.04. Определим юзера root mysql на локальной машине, зададим ему пароль root, рассмотрим смену длинны пароля и ограничений по нему.
Количество символов в слове при поиске по FULLTEXT ключу. Параметр ft_min_word_len.
Установка MySQL 5.7 через Docker. Все действия будем производить на Ubuntu 14.04 c помощью docker-compose. Рассмотрим запуск, схему для compose и примеры подключения к созданному контейнеру MySQL.