Skip to content

Importing and Exporting Data

Info

Untuk menjalankan query dibawah ini pastikan anda sudah masuk kedalam MySql session anda.

Understanding SQL Syntax for importing and exporting data

Untuk meng-import dan meng-export data melalui SQL scripts, opsi --secure_file_priv harus dikonfigurasi dengan benar. Opsi secure_file_priv mungkin secara bawaan di non aktifkan, atau file yang ingin di import harus berlokasi pada lokasi yang spesifik. Anda dapat merubah pengaturan ini di sisi server dimana MySQL tersebut terinstall.

Untuk menge-check konfigurasi secure_file_priv, jalankan perintah berikut;

select @@secure_file_priv 
-- OR
SHOW VARIABLES LIKE "secure_file_priv";

Settingup secure_file_priv

Bawaanya fitur secure_file_priv aktif, sehingga untuk membaca file atau upload file harus berada pada direktori tersebut. Untuk mengubah lokasi secure file atau menonaktifkannya anda dapat membuat beberap baris kata di /etc/mysql/my.cnf

/etc/mysql/my.cnf
[mysqld]
secure_file_priv="/Location/To/Scure/File"
/etc/mysql/my.cnf
[mysqld]
secure_file_priv=""

Warning

Tujuannya nilai bawaan secure_file_priv adalah keamanan. Karena jika tidak tersetup, maka user yang memliki akses FILE dapat membaca dan menulis file disemua repositori server jika user sql kebetulan masuk kedalam group SUDO atau bahkan ROOT.

Jika sudah maka save, dan restar service mysql

systemctl restart mysql.service

Jika berhasil maka nilai dari variabel secure_file_priv akan berubah

mysql> select @@secure_file_priv;
+--------------------+
| @@secure_file_priv |
+--------------------+
|                    |
+--------------------+
1 row in set (0,00 sec)

mysql> SHOW VARIABLES LIKE "secure_file_priv";
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| secure_file_priv |       |
+------------------+-------+
1 row in set (0,01 sec)

Contoh diatas saya menonaktifkan file_secure_priv, namun perlu diingat ini sangat rentan, baiknya fitur ini AKTIF.

Importing With SQL script

Untuk mengimport jalankan syntax dibawah ini

LOAD DATA INFILE 'your_path'
INTO TABLE baseball.teams
FIELDS TERMINATED BY ','; 

Warning

Jika terjadi error, yang mengatakan “The MySQL server is running with the --secure-file-priv option so it cannot execute this statement”. Solusinya kita harus menempatkan file tersebut kedalam saved directory. Alamat secure_file_priv didapatkan dengan perintah diatas (awal). Pada komputer saya alamatnnya adalah C:/ProgramData/MySQL/MySQL Server 8.0/Uploads.