Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Menonaktifkan Mode SQL Ketat di MySQL 5.7

Jika aplikasi Anda ditulis untuk versi MySQL yang lebih lama dan tidak kompatibel dengan mode SQL ketat di MySQL 5.7, Anda dapat menonaktifkan mode SQL ketat. Misalnya, aplikasi seperti WHMCS 6 dan Craft 2 tidak mendukung mode SQL yang ketat.

Jika Anda menggunakan WHMCS 7, lihat artikel kami tentang menyesuaikan MySQL untuk WHMCS 7.

Untuk menonaktifkan mode SQL ketat, SSH masuk ke server Anda sebagai root dan buat file konfigurasi baru menggunakan nano atau editor pilihan Anda:

sudo nano /etc/mysql/conf.d/disable_strict_mode.cnf

Dalam file, masukkan dua baris ini:

[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Simpan file dengan menekan CTRL + X , lalu y , lalu MASUKKAN untuk mengonfirmasi perubahan.

Terakhir, restart MySQL dengan perintah ini:

sudo service mysql restart

Perubahan ini menonaktifkan dua setelan mode SQL, STRICT_TRANS_TABLES dan ONLY_FULL_GROUP_BY, yang ditambahkan di MySQL 5.7 dan menyebabkan masalah pada beberapa aplikasi lama.

Mengonfirmasi Mode SQL Ketat Dinonaktifkan

Anda dapat mengonfirmasi bahwa mode SQL ketat dinonaktifkan dengan menjalankan perintah ini sebagai root :

sudo mysql -i -BN -e 'SELECT @@sql_mode' | grep -E 'ONLY_FULL_GROUP_BY|STRICT_TRANS_TABLES'

Jika mode ketat dinonaktifkan, Anda tidak akan melihat output apa pun dari perintah itu.

Jika menonaktifkan mode ketat menyebabkan masalah bagi Anda, Anda dapat mengaktifkannya kembali dengan menghapus file itu dan memulai ulang MySQL lagi.

Seperti Apa Kesalahan Mode SQL Ketat

Jika aplikasi Anda tidak kompatibel dengan mode SQL ketat, Anda akan sering melihat kesalahan SQL seperti:

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of
SELECT list is not in GROUP BY clause and contains nonaggregated column
'yourdbname.tblannouncements.date' which is not functionally dependent on
columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql -> masukkan ke tbl (pilih dari tabel lain) dan beberapa nilai default

  2. 3 Cara Menemukan Baris yang Mengandung Huruf Kecil di MySQL

  3. Contoh transaksi PHP + MySQL

  4. Bagaimana cara mengganti ekspresi reguler di MySQL?

  5. Bisakah Aplikasi Android terhubung langsung ke database mysql online