Fix Solved "Error Code: 1055 incompatible with sql only_full_group_by" Server GNU/Linux


Assalamualaikum Wr.Wb...
dengan diberikan nikmat dan rezeki dari Allah SWT, saya Mr.Gagaltotal666 akan
berbagi kepada anda yaitu tentang cara Fix Solved "Error Code: 1055
incompatible with sql only_full_group_by" Server GNU/Linux..

ketika saya sedang melakukan uji tester suatu aplikasi berbasis web
menggunakan Codeigniter 3.11, dan menggunakan database MySQL
terdapat Error di group SQL Mode nya,
contoh error di codeigniter seperti ini

$ Error Code: 1055 incompatible with sql_mode=only_full_group_by


dan ketika saya tes query nya di SQL phpmyadmin
juga terdapat error yang sama, ya memang jelas lah


kalau di PHP native sama aja namun ada beberapa
saat perintah tambah/insert akan mendapatkan error

$ incorrect integer value row 1


maskudnya ini ada beberapa query yang di group dan inner join
saat perintah tambah/insert maupun edit/ubah
akan mengalami tidak jalan nya aplikasi tersebut...

bagaimana cara mengatasi nya ?, mudah kok dan tidak susah
ikuti langkah berikut....

pertama saya akan mengasih tahu di PHP native
buka text editor anda masing-masing

cara simple atau sederhana mengatasi di PHP native cukup mudah
hanya saja kita setting di file config.php yang artinya untuk koneksi
ke suatu database yaitu MySQL, contoh seperti ini cara simple nya

hanya menambahkan SQL mode Global dan Session

$ mysqli_query($koneksi, " SET GLOBAL sql_mode ='' ");
$ mysqli_query($koneksi, " SET SESSION sql_mode ='' ");


ketika saya tes kembali aksi tambah/insert dan berhasil..


cara ke dua 2 ini sebenarnya di PHP native dan Framework Codeigniter
harus menggunakan Settingan config MySQL di server linux ini
jadi PHP native cara diatas tidak usah dipakai lagi
karena kita disini akan menambahkan settingan pada config di MySQL
yang tepat nya berada di Linux Server, yang saya gunakan yaitu
ubuntu server 18.04 LTS, mungkin untuk server berbagai Distro
akan berbeda penempatan file Mysqld nya,

oke langsung saja buka terminal/console linux server anda

pergi ke directory /etc/mysql/
cari file mysqld.cnf
keluarga debian : /etc/mysql/mysql.conf.d/mysqld.cnf

disini kita tambahkan SQL mode dibawah line [mysqld]
pada file mysqld.cnf
contoh seperti ini

[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"

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf


kalau sudah tinggal di save, kemudian restart apache dan mysql nya

$ systemctl restart apache2
$ systemctl restart mysql

keluarga distro arch dan manjaro

$ systemctl restart httpd
$ systemctl restart mysqld


tambahan untuk di versi mysql 8.0
tambahkan sintak sql seperti ini

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

mode NO_AUTO_CREATE_USER telah dihapus di MySQL 8
(dengan asumsi itu adalah versi yang Anda gunakan di Ubuntu 20.04)
dan akan menghasilkan kesalahan jika disertakan dalam konfigurasi Anda.

Contoh untuk di 20.04 Focal Fossa

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


ketika saya menguji kembali dan berhasill... tidak ada error lagi
penasaran ?, cek video tutorial nya dibawah ini


oke mungkin itu saja mengenai artikel error 1055 pada sql di GNU/Linux
kalau ada kesalahan dan kekurangan nya mohon berikan masukan nya ya

sekian dan semoga bermanfaat...

Wasalamualaikum Wr.Wb...

Sumber : [StackOverFlow] [StackOverflow2]

Post a Comment

0 Comments