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 nilaimax_allowed_packet
yang sedang dipakai:
SHOW VARIABLES LIKE 'max_allowed_packet';
+--------------------+----------+ | 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 apakahsecure_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/gamba
r
#Men
g
copy
file fotoku.jpg dari /home/user ke
/var/lib/mysql/gamba
r
kemudian
coba load file di mysql
SELECT
LOAD_FILE(‘
/var/lib/mysql/gamba
r/fotoku.jpg’);
Taraaa…
Semoga
berhasil