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.
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
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.
Minimal untuk membackup nya saja, yang penting konten dan databasenya bisa selamat mas
Kalau sudah down ya ga bisa dibackup mas. Ga ada fitur snapshot di panelnya.
Back to topik, itu ga bisa pindah ke maria db karena pakai vestacp ya mas?
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.
Silahkan edit konfigurasi MySQL (my.ini atau my.cnf):
itu settingnya pada dicpanel – > phpmyadmin dimana mas
sedangkan settingan diatas klo install di localhost
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.
Terima kasih, saya sangat terbantu dengan tutorial ini…