MySQL, dan MariaDB, mode ketat mengontrol bagaimana nilai yang tidak valid atau hilang dalam kueri perubahan data ditangani; ini termasuk pernyataan INSERT, UPDATE, dan CREATE TABLE. Dengan mengaktifkan mode ketat MySQL, yang merupakan status default, data yang tidak valid atau hilang dapat menyebabkan peringatan atau kesalahan saat mencoba memproses kueri.
Ketika mode ketat dinonaktifkan, kueri yang sama akan memiliki nilai yang tidak valid, atau hilang, yang disesuaikan dan akan menghasilkan peringatan sederhana. Ini mungkin tampak seperti hasil yang disukai, namun dengan mode ketat yang dinonaktifkan, tindakan tertentu dapat menyebabkan hasil yang tidak diharapkan; misalnya, ketika nilai yang dimasukkan melebihi batas karakter maksimum, nilai tersebut akan dipotong agar sesuai dengan batas tersebut.
Ada berbagai alasan mengapa mode ketat MySQL mungkin perlu dinonaktifkan, namun yang paling umum adalah saat server menjalankan WHMCS — ini adalah persyaratan alat itu.
Pemeriksaan Pra-Penerbangan
- Instruksi ini ditujukan khusus untuk menonaktifkan mode ketat MySQL pada server Liquid Web yang dikelola dengan cPanel.
- Server harus menjalankan MySQL 5.6/5.7 atau MariaDB 10.x
- Baris perintah dan akses tingkat root melalui SSH akan diperlukan untuk mengikuti tutorial ini.
Langkah #1:Selalu Buat Cadangan!
Setiap kali memodifikasi file di server, selalu praktik terbaik untuk mengambil beberapa bentuk cadangan terlebih dahulu. Ini memastikan Anda memiliki cara untuk mengembalikan perubahan jika terjadi kesalahan; ini juga bermanfaat karena membantu melacak kapan dan perubahan apa yang dibuat.
Saat masuk ke SSH dengan pengguna root, lakukan hal berikut:
cp -a /usr/my.cnf{,.strict.bak}
cp -a /etc/my.cnf{,.strict.bak}
Langkah #2:Nonaktifkan MySQL Strict Mode
Tergantung pada server dan konfigurasi saat ini, Anda mungkin perlu mengedit salah satu, atau keduanya, dari file berikut di server. Umumnya, jalur konfigurasi yang relevan hanya ada di salah satunya, namun, bisa juga di salah satunya tanpa menyebabkan masalah; jadi umumnya yang terbaik adalah memeriksa keduanya.
Untuk mengedit file, Anda akan membuka file dengan editor baris perintah favorit Anda. Dalam contoh ini, kami menggunakan 'vim'.
vim /usr/my.cnf
vim /etc/my.cnf
Dalam setiap file di atas Anda akan mencari baris dengan konten berikut:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Jika Anda menemukan baris yang mirip dengan di atas yang mengatur variabel `sql_mode` maka Anda perlu menggantinya dengan baris berikut untuk menonaktifkan mode ketat MySQL.
sql_mode=""
Setelah penyesuaian ini dilakukan, atau Anda telah mengonfirmasi bahwa file tidak perlu disesuaikan, Anda akan menyimpan dan menutup file tersebut.
Langkah #3:Mulai Ulang Layanan MySQL
Terakhir, untuk membuat perubahan ini efektif, Anda perlu me-restart layanan MySQL karena hanya akan membaca file konfigurasi saat pertama kali dimuat. Untuk memaksa MySQL menggunakan file konfigurasi baru, Anda akan melakukan hal berikut:
Untuk server CentOS 7:systemctl restart mysql
Untuk CentOS 6 dan sebelumnya:/etc/init.d/mysql restart
Setelah mengeluarkan perintah ini di server, layanan MySQL akan dimulai ulang dan akan memuat perubahan yang dibuat. Jika semua petunjuk diikuti dan diselesaikan, maka mode ketat MySQL sekarang harus dinonaktifkan.
Untuk memverifikasi bahwa proses telah selesai dengan benar, Anda dapat menjalankan yang berikut:
mysql -e "SELECT @@sql_mode;"
Outputnya mungkin terlihat seperti berikut:
+--------------------------------------------+
| @@sql_mode
+--------------------------------------------+
| NO_AUTO_CREATE_USER
+--------------------------------------------+
Jika Anda memiliki pertanyaan atau merasa tidak nyaman melakukan perubahan ini sendiri, silakan hubungi Heroic Support®.