Ternyata MySQL itu masih sangat relevan. 😀 Saya baru tahu pada MySQL versi 5.7 itu ada Strict SQL Mode yang aktif secara default dan efeknya ada query yang tidak kompatibel. Walaupun tidak sampai rusak atau bermasalah besar dengan CMSnya, tapi ada beberapa fungsi yang tidak bekerja semestinya. Karena saya tidak diperbolehkan untuk migrasi ke MariaDB atau Percona ya cari solusi alternatifnya.

Dalam log saya temukan pesan kesalahan berikut:

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

Ya setidaknya ada sedikit detail masalahnya dimana. 😀

Nah… cara mengatasinya mengakalinya adalah dengan menonaktifkan Strict SQL Mode ini. Silahkan edit konfigurasi MySQL (my.ini atau my.cnf):

nano /etc/mysql/my.cnf

Kemudian cari baris kode berikut:

sql-mode = "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Kosongkan seperti ini:

sql-mode=""

Setelah itu restart MySQL.

service mysql restart

Atau alternatifnya bisa menambahkan satu file konfigurasi khusus:

nano /etc/mysql/conf.d/matikan_strict_mode.cnf

Isikan kode berikut:

[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Dan jangan lupa restart proses database servernya.