Cara Impor File CSV ke MySQL dengan LOAD DATA INFILE (Panduan Lengkap)

1. Pengantar tentang Impor CSV ke MySQL

Mengimpor file CSV ke MySQL adalah cara yang efektif untuk mengelola data dan mengurangi pekerjaan memasukkan data secara manual. Misalnya, saat Anda ingin memasukkan informasi dari berbagai sumber data ke dalam database sekaligus, atau ketika Anda ingin memproses data dari sistem eksternal secara otomatis, impor CSV menjadi solusi yang sangat berguna.

Kegunaan Umum Impor CSV

  • Pengolahan data dalam jumlah besar: Alih-alih memasukkan ribuan record secara manual, dengan impor CSV data dapat diproses dalam waktu singkat.
  • Migrasi data: Berguna untuk memasukkan data yang diekspor dari sistem lain ke MySQL.
  • Pembaruan data berkala: Pada sistem yang membutuhkan pembaruan rutin, impor CSV memungkinkan otomatisasi.

2. Prasyarat

Sebelum mengimpor file CSV ke MySQL, ada beberapa pengaturan dan persiapan yang perlu dilakukan agar proses impor berjalan lancar.

2.1 Lingkungan yang diperlukan

  • Instalasi server MySQL
    Pastikan MySQL sudah terpasang dan berjalan dengan baik. Cek sesuai OS yang digunakan, baik Windows, macOS, maupun Linux.
  • Pemeriksaan hak akses
    Untuk mengimpor CSV, pengguna MySQL harus memiliki hak akses yang sesuai. Terutama izin untuk menjalankan LOAD DATA INFILE. Tanpa izin ini, impor akan ditolak.

2.2 Format file CSV

  • Pemisah kolom
    Biasanya file CSV menggunakan koma, namun kadang tab atau titik koma juga dipakai. Pastikan jenis pemisah yang digunakan.
  • Pemeriksaan encoding
    Jika file CSV disimpan dengan encoding berbeda (UTF-8, Shift-JIS, dll), bisa muncul karakter rusak saat impor. Periksa encoding file sebelumnya dan ubah ke format yang sesuai bila diperlukan.

3. Impor CSV dengan Perintah LOAD DATA INFILE

Cara paling umum untuk mengimpor file CSV ke MySQL adalah menggunakan perintah LOAD DATA INFILE. Dengan perintah ini, data dalam jumlah besar dapat dengan mudah dimasukkan ke database.

3.1 Sintaks dasar

Berikut contoh sintaks dasar untuk mengimpor file CSV ke MySQL:

LOAD DATA INFILE '/path/to/file.csv' INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n';
  • FIELDS TERMINATED BY: Menentukan pemisah antar kolom. Umumnya koma.
  • LINES TERMINATED BY: Menentukan pemisah antar baris. Biasanya n (newline).

3.2 Contoh eksekusi

Contoh berikut mengimpor file user_data.csv ke tabel users:

LOAD DATA INFILE '/path/to/user_data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
IGNORE 1 LINES;
  • IGNORE 1 LINES: Melewati baris pertama (header). Berguna jika file CSV memiliki nama kolom di baris pertama.

3.3 Catatan: Path file dan izin akses

Pastikan file berada di lokasi yang bisa diakses server MySQL. Jika tidak bisa diakses, gunakan LOAD DATA LOCAL INFILE untuk membaca file dari sisi klien.

4. Solusi untuk Masalah Umum

Berikut beberapa masalah umum saat impor CSV dan cara mengatasinya:

4.1 Masalah path file

Jika path file salah, bisa muncul error The MySQL server is not permitted to read from the file. Periksa path file, atau gunakan LOAD DATA LOCAL INFILE untuk membaca file lokal.

LOAD DATA LOCAL INFILE '/path/to/file.csv' INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n';

4.2 Masalah encoding karakter

Jika encoding file berbeda, karakter bisa rusak saat impor. Periksa encoding dan tentukan charset yang tepat di MySQL.

SET NAMES 'utf8mb4';

 

5. Contoh Praktis: Langkah Impor CSV

Berikut langkah-langkah impor file CSV ke MySQL secara nyata.

5.1 Persiapan file CSV

Buat file CSV (data.csv) seperti berikut:

id,name,age
1,山田太郎,28
2,佐藤花子,34
3,田中一郎,45

5.2 Eksekusi perintah

Jalankan perintah berikut untuk mengimpor file ke tabel users:

LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
IGNORE 1 LINES;

Dengan perintah ini, baris kedua dan seterusnya dari file CSV akan masuk ke tabel users.

6. Lanjutan: Penanganan Error dan Data Duplikat

Berikut cara menangani error atau duplikasi data saat impor CSV:

6.1 Mengatasi data duplikat

Jika data dengan kunci yang sama sudah ada, gunakan opsi REPLACE untuk mengganti baris lama dengan data baru.

LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
IGNORE 1 LINES
REPLACE;

6.2 Penanganan error

Gunakan opsi IGNORE agar proses tetap berjalan meskipun ada error. Baris bermasalah akan dilewati, sementara data lainnya tetap diimpor.

LOAD DATA INFILE '/path/to/data.csv' INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
IGNORE 1 LINES
IGNORE;

 

7. Kesimpulan

Impor CSV ke MySQL adalah alat yang sangat berguna untuk mempercepat pengolahan data dalam jumlah besar maupun migrasi antar sistem. Dengan memahami langkah dasar, penanganan error, dan duplikasi data, Anda dapat melakukan impor dengan stabil dan efisien.

Ke depan, kami juga akan membahas metode ekspor data dari MySQL agar keterampilan manajemen data Anda semakin lengkap.