Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да деактивирате строг SQL режим в MySQL 5.7

Ако приложението ви е написано за по-стари версии на MySQL и не е съвместимо със строг SQL режим в MySQL 5.7, можете да деактивирате строг SQL режим. Например приложения като WHMCS 6 и Craft 2 не поддържат строг SQL режим.

Ако използвате WHMCS 7, вижте нашата статия за персонализиране на MySQL за WHMCS 7.

За да деактивирате строг SQL режим, SSH влезте във вашия сървър като root и създайте нов конфигурационен файл с помощта на nano или редактор по ваш избор:

sudo nano /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

Запазете файла, като натиснете CTRL + X , след това y , след това ENTER за да потвърдите промените.

Накрая рестартирайте 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 отново.

Как изглеждат стриктните грешки в SQL режим

Ако приложението ви не е съвместимо със строг SQL режим, често ще виждате SQL грешки като:

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of
SELECT list is not in GROUP BY clause and contains nonaggregated column
'yourdbname.tblannouncements.date' which is not functionally dependent on
columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Отстраняване на неизправности:MySQL/MariaDB грешка #1044 и #1045 Достъпът е отказан за потребителя

  2. Преобразувайте символите latin1 в UTF8 таблица в UTF8

  3. Как работи функцията LOWER() в MySQL

  4. Добавете външен ключ към съществуваща таблица

  5. Как да създадете последователност в MySQL