Minggu, 28 Juli 2019

Cara Mengatasi LOAD_FILE() Bernilai NULL Pada MySql


Penggunaan LOAD_FILE() umumnya digunakan untuk memasukkan data berupa file/gambar pada kolom tabel bertipe data BLOB. Namun seringkali pengguna MySql yang belum pengalaman penggunaan data bertipe BLOB kesulitan untuk memasukkan data yang berupa file tersebut.
Untuk mencoba berhasil tidaknya akses file biasanya menggunakan tes query SELECT LOAD_FILE(<path>). Misalnya:

SELECT LOAD_FILE(‘/home/user/Picture/fotoku.jpg’);


Jika ditemukan nilai NULL pada hasil/keluaran query diatas, sedangkan file tersebut memang ada (sesuai path), maka perlu di ketahui ada beberapa hal yang (umumnya) menyebabkan panggilan LOAD_FILE() bernilai NULL. Untuk itu maka:

  • Pastikan File tersebut berlokasi di komputer/host server (lokasi MySql Servert terinstall)

  • Harus mempunyai hak akses untuk membuka atau membaca file tersebut.

  • Ukuran/size File tidak melebihi “max_allowed_packet”. Untuk Melihat nilai max_allowed_packet yang sedang dipakai:
SHOW VARIABLES LIKE 'max_allowed_packet';

Hasil:
+--------------------+----------+
| Variable_name      | Value    |
+--------------------+----------+
| max_allowed_packet | 4194304  |
+--------------------+----------+
  • Jika pada sistem variable secure_file_priv yang digunakan untuk memberikan hak akses pada lokasi yang sudah ditentukan, sudah di set tidak kosong, maka hendaknya file diload dari lokasi tersebut. Untuk melihat apakah secure_file_priv sudah diset atau belum:
SHOW VARIABLES LIKE 'secure_file_priv';

Contoh Hasil:
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| secure_file_priv | /data/ |
+------------------+--------+

Jika cara-cara yang berhubungan diatas setelah dicoba namun masih belum berhasil (mungkin karena masih belum benar-benar faham). Maka cobalah cara berikut:

Letakkan sebuah file pada /var/lib/mysql misal:
$ sudo cp ~/fotoku.jpg /var/lib/mysql/gambar
#Mengcopy file fotoku.jpg dari /home/user ke /var/lib/mysql/gambar

kemudian coba load file di mysql

SELECT LOAD_FILE(‘/var/lib/mysql/gambar/fotoku.jpg’);

Taraaa…

Semoga berhasil

Tidak ada komentar:

Posting Komentar