Cara disable mode strict pada Mysql dan MariaDB
Skrip php error dan tidak bisa menambahkan baris pada mysql, atau import mysql gagal? Bisa jadi dikarenakan mode strict pada mysql/mariadb server Anda aktif.
Pada mysql 5.7 dan seterusnya ataupun mariadb 5.7 dan seterusnya secara default berada dalam keadaan mode strict.
Saat mode strict aktif maka jika perintah SQL Anda tidak valid atau default value nya tidak ada maka eksekusi SQL akan gagal saaat anda melakukan perintah INSERT dan UPDATE Pesan errornya bisa beragam, misal type kolom nya salah, atau bisa out of range.
Pada kebanyakan kasus masih banyak programmer yang menggunakan statement mysql dengan cara tidak standar, dan ini akan menyebabkan masalah tentunya jika mode strict nya aktif.
Pada tutorial ini kita akan belajar bagaimana menonaktifkan atau disable strict mode mysql/mariadb server. Tutorial ini bisa digunakan baik di linux, maupun di windows.
Mengecek strict mode aktif atau enabled
Silahkan Anda login ke console atau terminal Anda, dan jalankan:
mysql -e "SELECT @@sql_mode;"
Jika strict mode aktif, Anda akan mendapatkan detail informasi sebagai berikut:
+-----------------------------------------------------------------------------------------------------------------------+ | @@sql_mode | +-----------------------------------------------------------------------------------------------------------------------+ | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION | +-----------------------------------------------------------------------------------------------------------------------+
Terlihat disana ada mode STRICT_TRANS_TABLES, hal ini menandakan mysql/mariadb server Anda dalam keadaan strict mode.
Disable strict mode pada mysql/mariadb server
Silahkan temukan konfig my.cnf Anda jika Anda menggunakan linux, atau my.ini pada windows.
Pada linux biasanya lokasi my.cnf nya ada pada path berikut:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/etc/my.cnf
~/.my.cnf
Sedangkan di windows path nya Ada pada berikut:
C:\Windows\my.ini
C:\Windows\my.cnf
C:\my.ini
C:\my.cnf
C:\Program Files\MySQL\MySQL Server 8\my.ini
C:\Program Files\MySQL\MySQL Server 8\my.cnf
Jika anda menggunakan XAMPP atau sejenisnya, bisa disesuaikan dengan lokasi mysql servernya terinstall.
Nah jika sudah, selanjutnya silahkan tambahkan hal berikut didalam seksi [mysqld]:
sql_mode = 'NO_ENGINE_SUBSTITUTION'
Jika sudah, simpan file konfigurasi mysql nya tersebut, dan lakukan restart mysql/mariadb servernya.
Setelah itu silahkan cek kembali mode mysql nya dengan command yang sama dengan sebelumnya.
mysql -e "SELECT @@sql_mode;"
Anda akan mendapati keterangan mode seperti berikut yang menandakan sql_mode nya sudah tidak dalam kondisi strict lagi.
+------------------------+ | @@sql_mode | +------------------------+ | NO_ENGINE_SUBSTITUTION | +------------------------+
Repot harus konfigurasi manual sendiri di server Anda? Yuk berlangganan VPS di Domosquare saja, gratis CPU dan RAM 2x lipat 🙂 Kami bantu hal-hal seperti ini tanpa biaya tambahan.