Cara melumpuhkan mod SQL yang ketat di mysql

Cara melumpuhkan mod SQL yang ketat di mysql

Soalan - Cara melumpuhkan mod SQL yang ketat di MySQL? Bagaimana saya melumpuhkan mod ketat mysql? Cara menetapkan pilihan sql_mode secara global untuk melumpuhkan mod ketat pelayan mysql saya?

Mod yang ketat mengawal bagaimana MySQL mengendalikan nilai yang tidak sah atau hilang dalam pernyataan perubahan data seperti memasukkan atau mengemas kini. Ini boleh untuk apa -apa sebab seperti jika mod ketat diaktifkan, pembahagian dengan sifar menghasilkan ralat. Tarikh sebagai '0000-00-00' tidak dibenarkan dan menghasilkan ralat. Tutorial ini akan membantu anda untuk melumpuhkan mod SQL yang ketat di MySQL Server 5.Versi 7 atau lebih baru.

Lumpuhkan mod SQL yang ketat

Anda boleh melakukannya dengan mengedit mysqld.cnf di pelayan anda. Tetapi untuk tutorial ini, saya akan membuat fail konfigurasi berasingan untuk melumpuhkan mod SQL yang ketat di pelayan MySQL.

sudo vim/etc/mysql/conf.d/disable_mysql_strict_mode.cnf 

Tambahkan kandungan di bawah dan simpan fail.

[mysqld] sql_mode = "ignore_space, no_zero_in_date, no_zero_date, error_for_division_by_zero, no_auto_create_user, no_engine_substitution" 

Sekarang mulakan semula perkhidmatan MySQL untuk menggunakan perubahan.

sudo systemctl mulakan semula mysql.perkhidmatan 

Sahkan mod SQL

Log masuk ke konsol MySQL dan laksanakan pertanyaan di bawah untuk mencari nilai pembolehubah sql_mode.

mysql> pilih @@ sql_mode;
1mysql> pilih @@ sql_mode;

Anda akan mendapat hasil seperti di bawah tangkapan skrin. Pastikan Only_full_group_by dan Strict_trans_tables tidak ada hasilnya.