Cara mematikan Strict SQL Mode pada MySQL

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.

9 Comments

  1. Halo mas Chandra

    Saya ada masalah baru, sangat urgent sekali.

    Saya mengguna vps di vpeasy, sudah sekitar 6 bulan lancar jaya. Baru hari ini situs saya tidak bisa diakses. Ketika saya ping IP ya bisa connect. Namun semua situs yang ada di vps tersebut down. Saya akses control panel nya pun tidak bisa (saya pakai webuzo). jadi, rencana mau saya install ulang saya urungkan, karena belum bisa backup konten2nya.

    Adakah solusi yang bisa mas Chandra berika ke saya? mohon pencerahannya mas,
    trims

    1. Ini ga ada solusinya kecuali nunggu supportnya yang ngurus mas. Lha mesinnya saja mereka yang pegang. Ya pasrah jadinya.

      Saran saya buat sistem auto-backup berkala, jadi kalau ada apa – apa bisa segera cabut permanen atau sementara.

    1. Bukannya VestaCP masih pakai MySQL 5.6 ya mas?

      Yang saya bahas diatas itu stack standar milik klien, cuma Apache+PHP+MySQL. Install satu – satu dan saya nerimanya sudah gitu. 🙂 Entah kenapa kok pakai 5.7, mungkin ga sengaja update. Aslinya sih ga ada masalah berarti, cuma pas di forumnya ada fitur urutkan topik/pm itu ga muncul apa – apa. Ternyata pas cek log ya error diatas.

  2. Silahkan edit konfigurasi MySQL (my.ini atau my.cnf):
    itu settingnya pada dicpanel – > phpmyadmin dimana mas
    sedangkan settingan diatas klo install di localhost

  3. Cara kembalikan seperti semula gimana mas? saya coba mysqlnya langsung mati tidak bisa start. terus saya delete file matikan_restrict_mode.cnf nya masih sama mysqlnya jadi tidak bisa di restart.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *