Gagal LOAD DATA LOCAL

mysql

Tidak lama, saya baru saja menemui permasalahan baru saat ingin import data dari file ke database dengan menggunakan perintah LOAD DATA LOCAL INFILE. Kasusnya sederhana, saya punya sebuah file CSV yang akan diimport ke dalam tabel di database tertentu.

Teorinya simpel, apabila server mysql dengan server applikasi masih satu mesin maka cukup gunakan perintah LOAD DATA INFILE. Namun jika server database dan server applikasi terpisah mesinnya maka perlu parameter tambahan menjadi LOAD DATA LOCAL INFILE. Sarat kedua, usernya sudah memperoleh GRANT FILE.

Namun, belakangan setelah update beberapa server, oleh tim lain, maka script saya yang biasa menemui error sebagai berikut

Error Number: 1148
The used command is not allowed with this MySQL version
LOAD DATA LOCAL INFILE 'path/file.csv' INTO TABLE `tabel` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n'
Filename: /libraries/war_file_reader.php
Line Number: 358

Setelah cek variabel server mysql, variabel local_infile udah ON. Setelah searching di google menemui jawaban yang berputar pada variabel ini. Namun ada salah satu jawaban yang berbeda, yaitu dengan memanipulasi fungsi mysql_connect(). Dengan menambahkan integer 128 pada parameter keempat maka permasalahan tadi sudah terselesaikan. Untuk pengguna CI 2.x silakan cari file driver mysql dan manipulasi sedikit di sini.

function db_connect()
 {
 if ($this->port != '')
 {
 $this->hostname .= ':'.$this->port;
 }
return @mysql_connect($this->hostname, $this->username, $this->password, TRUE, 128);
 }

About Ilham Hernowo S

Kelahiran Ungaran 1985. Beristri 1 beranak 2, thats enough.
This entry was posted in Database, PHP, Programing. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

* Kode Akses Komentar:

* Tuliskan kode akses komentar diatas: