Mendisable strict query di MySQL


Apakah anda pernah mengalami error query seperti berikut:

.... ORDER BY clause is not in Group BY clause and contains nonaggregated column ..... wich is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

pesan error tersebut muncul di salah satu aplikasi yang saya pakai setelah database MySQL yang saya gunakan, saya upgrade dari versi 5.6 ke versi 5.7 di sistem operasi Ubuntu Server 16.04 LTS.

Setelah browsing dan mencari-cari apa yang menyebabkan error tersebut, ternyata memang query pada aplikasi yang saya gunakan kurang tepat, tetapi kenapa ketika saya menggunakan MySQL versi 5.6 saya tidak mendapati error tersebut?

Hal ini dikarenakan pada versi MySQL 5.6 dan sebelumnya fitur strict query secara otomatis terdisable, dan secara default aktif ketika versi 5.7 ini.

Akhirnya dengan berbagai pertimbangan saya memilih untuk menonaktifkan fitur strict query tersebut daripada melakukan perubahan source code yang banyak :-P toh sebelumnya data hasil dari query tersebut tetap valid.

Untuk mematikan fitur strict query dapat dilakukan dengan menambahi konfigurasi:

 sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

di dalam file /etc/mysql/mysql.conf.d/mysqld.cnf

setelah disimpan, kemduian saya restart service mysql server dengan perintah:

 sudo service mysql restart

untuk mengimplementasikan perubahan konfigurasi tersebut, dan voila, error tersebut tidak muncul lagi dan aplikasi berjalan seperti sedia kala

Comments