Довжина слова у FULLTEXT пошуку. Розмір ft_min_word_len ключа.
Кількість символів у слові під час пошуку за FULLTEXT ключем. Параметр ft_min_word_len.
Іноді трапляється, що потрібно завести старий сайт на новому програмному забезпеченні. У моєму випадку, сайт, що працює на mysql 5.5, потрібно було для налагодження завести на mysql 5.7. Тут же виникла помилка "42000":
SQLSTATE[42000]: Syntax error або access violation: 1055 Expression #1 of ORDER BY clause 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.
Не використовуйте це на продакшен.
Кількість символів у слові під час пошуку за FULLTEXT ключем. Параметр ft_min_word_len.
База автомобільних шин та дисків. В базі присутні: виробник, модель, рік, модифікація, PCD, діаметр, гайка, заводські розміри шини та диска, можливі варіанти заміни, тюнінг шини та диски. Вантажних автомобілів у базі немає.
Розглянемо налаштування доступу MySql 5.7 до Ubuntu 18.04. Визначимо користувача root mysql на локальній машині, задамо йому пароль root, розглянемо зміну довжини пароля та обмежень щодо нього.