Jika Kamu menggunakan MySQL versi terbaru, mungkin pernah menemukan error seperti:
Atau aplikasi lama tiba-tiba error setelah pindah server.
Salah satu penyebab yang paling sering adalah MySQL Strict Mode.
Dalam tulisan iki dibahas:
-
Apa itu MySQL Strict Mode
-
Dampaknya pada aplikasi
-
Mengapa error sering terjadi
-
Cara menonaktifkan dan cara menyesuaikan database agar tetap aman
Apa Itu MySQL Strict Mode?
MySQL Strict Mode adalah fitur yang mengatur agar MySQL lebih ketat dalam menerima data.
Tujuannya: melindungi database agar tidak terisi data yang salah atau tidak valid.
Saat strict mode aktif, MySQL tidak akan membiarkan:
-
data yang tidak sesuai tipe
-
tanggal tidak valid (misal: 2025-13-40)
-
kolom
NOT NULLyang tidak diisi -
data yang terlalu panjang
-
nilai default yang tidak ada
Jika menemukan masalah, MySQL langsung menolak query dan memberikan error.
Pengaruh MySQL Strict Mode
1. Menolak data yang salah
Jika Anda memasukkan huruf ke kolom tipe INT:
-
Tanpa Strict Mode → disimpan sebagai 0
-
Dengan Strict Mode → ERROR
2. Menolak tanggal tidak valid
Misalnya tanggal '0000-00-00' atau tanggal bulan “13”.
-
Tanpa strict → tetap disimpan
-
Dengan strict → ditolak
3. Kolom NOT NULL harus diisi
Jika tabel Anda punya kolom seperti:
Tetapi Anda tidak memberikan nilai, maka:
-
Dengan strict → ERROR: Field doesn’t have a default value
4. Data tidak akan dipotong diam-diam
Misalnya VARCHAR(10) tapi Anda mengirim 20 karakter.
-
Tanpa strict → MySQL memotong data
-
Dengan strict → ERROR, data dianggap tidak valid
Mengapa Mode Ini Sering Menyebabkan Error?
Error strict mode biasanya muncul pada:
-
aplikasi lama (PHP 5 / CMS lawas)
-
struktur tabel yang tidak memiliki default value
-
tabel yang dibuat tanpa memperhatikan
NOT NULL -
migrasi dari hosting lama ke server baru
-
Laravel / CodeIgniter / PHP yang insert otomatis
Contoh error yang sangat umum:
Ini terjadi karena MySQL tidak mengizinkan kolom NOT NULL tanpa nilai.
Cara Mengatasi MySQL Strict Mode
Ada beberapa cara bergantung pada kebutuhan Anda.
1. Matikan Strict Mode (Cara Sederhana dan Cepat)
Jika Anda hanya ingin mematikan strict mode tanpa mengubah file konfigurasi:
Per session (tidak permanen)
Hapus strict mode saja
Ini cocok untuk testing atau development.
2. Matikan Strict Mode Secara Permanen (my.cnf / my.ini)
Edit file konfigurasi MySQL:
Linux
atau:
Tambahkan:
Atau jika ingin menghapus strict mode saja:
Setelah itu restart MySQL:
3. Mengatasi Strict Mode Tanpa Mematikannya (Rekomendasi)
Jika Anda ingin tetap aman tetapi ingin menghindari error:
Tambahkan default value
Atau izinkan NULL
Metode ini paling “bersih” dan aman jangka panjang, terutama untuk aplikasi modern.
Kapan Strict Mode Sebaiknya Dimatikan?
Cocok DIMATIKAN untuk:
-
aplikasi lama / legacy
-
CMS lama (WordPress lama, Joomla, CodeIgniter 2, PHP 5)
-
migrasi server
-
testing
Cocok TETAP DIHIDUPKAN untuk:
-
aplikasi modern
-
sistem keuangan / transaksi
-
aplikasi penting yang butuh data bersih
Kesimpulan
MySQL Strict Mode sangat membantu menjaga data tetap valid, tetapi bisa membuat error pada aplikasi lama atau tabel yang tidak disiapkan dengan baik.
Untuk mengatasi error strict mode, Anda bisa:
-
Mematikan strict mode (sementara atau permanen)
-
Memperbaiki struktur tabel dengan menambah default value atau mengizinkan NULL
-
Menggabungkan keduanya sesuai kebutuhan aplikasi
Jika Anda sering memindah aplikasi ke server baru, memahami strict mode sangat membantu mengurangi error yang tidak perlu.

