Jika aplikasi Anda ditulis untuk versi MySQL yang lebih lama dan tidak kompatibel dengan mode SQL ketat di MySQL 5.7, Anda dapat menonaktifkan mode SQL ketat. Misalnya, aplikasi seperti WHMCS 6 dan Craft 2 tidak mendukung mode SQL yang ketat.
Jika Anda menggunakan WHMCS 7, lihat artikel kami tentang menyesuaikan MySQL untuk WHMCS 7.Untuk menonaktifkan mode SQL ketat, SSH masuk ke server Anda sebagai root dan buat file konfigurasi baru menggunakan nano atau editor pilihan Anda:
sudo nano /etc/mysql/conf.d/disable_strict_mode.cnf
Dalam file, masukkan dua baris ini:
[mysqld] sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Simpan file dengan menekan CTRL + X , lalu y , lalu MASUKKAN untuk mengonfirmasi perubahan.
Terakhir, restart MySQL dengan perintah ini:
sudo service mysql restart
Perubahan ini menonaktifkan dua setelan mode SQL, STRICT_TRANS_TABLES dan ONLY_FULL_GROUP_BY, yang ditambahkan di MySQL 5.7 dan menyebabkan masalah pada beberapa aplikasi lama.
Mengonfirmasi Mode SQL Ketat Dinonaktifkan
Anda dapat mengonfirmasi bahwa mode SQL ketat dinonaktifkan dengan menjalankan perintah ini sebagai root :
sudo mysql -i -BN -e 'SELECT @@sql_mode' | grep -E 'ONLY_FULL_GROUP_BY|STRICT_TRANS_TABLES'
Jika mode ketat dinonaktifkan, Anda tidak akan melihat output apa pun dari perintah itu.
Jika menonaktifkan mode ketat menyebabkan masalah bagi Anda, Anda dapat mengaktifkannya kembali dengan menghapus file itu dan memulai ulang MySQL lagi.
Seperti Apa Kesalahan Mode SQL Ketat
Jika aplikasi Anda tidak kompatibel dengan mode SQL ketat, Anda akan sering melihat kesalahan SQL seperti:
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