Saat memigrasikan situs web klien dari satu WHM/cPanel ke WHM/cPanel lain, saya mendapatkan kesalahan SQL “Incompatible with sql_mode=only_full_group_by “. Di bawah ini adalah pesan kesalahan lengkapnya.
SELECT list is not in GROUP BY clause and contains nonaggregated column 'dbname.p.picfile' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Solusi: MySQL 5.7.5+ telah mengubah GROUP BY
perilaku agar sesuai dengan SQL99 (Versi yang lebih lama tidak) dan itulah alasan kesalahannya.
Solusinya adalah mengedit konfigurasi MySQL Anda untuk menghapus ONLY_FULL_GROUP_BY
opsi dari sql_mode
. Ini akan mengubah GROUP BY
perilaku kembali ke perilaku pra-MySQL 5.7.5.
Jika Anda menggunakan hosting bersama, Anda tidak akan dapat mengubah sql_mode
di tingkat lingkungan.
Hapus ONLY_FULL_GROUP_BY
di my.cnf
berkas
Jika Anda memiliki akses ke file konfigurasi MySQL my.cnf
, buka file:
# vim /etc/mysql/my.cnf
dan tambahkan baris di bawah ini ke akhir file:
[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Mulai ulang layanan MySQL:
# systemctrl restart mysqlNonaktifkan ONLY_FULL_GROUP BY
Ini akan menonaktifkan ONLY_FULL_GROUP_BY untuk SEMUA pengguna sistem.
Hapus ONLY_FULL_GROUP_BY
di WHM/cPanel
Jika domain Anda berada di cPanel (Hosting Bersama), maka Anda perlu menghubungi penyedia hosting Anda untuk memperbarui yang sama.
Jika Anda memiliki akses ke WHM, maka akses PHPMyAdmin
di bawah SQL Services
dari WHM seperti gambar di bawah ini:
Klik Variables
dari menu dan cari SQL_MODE
Klik tombol edit dan ubah hapus ONLY_FULL_GROUP_BY
. Setelah diedit, klik save
.
Itu dia!