Pendahuluan
Di sini akan didemonstrasikan cara mengekspor database MySQL/MariaDB dengan beberapa opsi. Juga setelah itu akan dibahas bagaimana cara mengimpor database yang telah kita ekspor sebelumnya. Apa yang anda pelajari dari tutorial ini bisa digunakan sebagai penunjang skill anda untuk menjadi seorang web developer atau pun sysadmin.
Pada tutorial ini, kita hanya akan menggunakan tool mysql
dan mysqldump
, baik untuk MariaDB atau pun MySQL. Sehingga tool database client lain yang bersifat GUI tidak akan digunakan di sini.
Baca Juga: 5 aplikasi MySQL client selain phpMyAdmin.
Persiapan
Pastikan anda telah menginstall MariaDB atau MySQL. Jika anda belum menginstallnya dan anda adalah pengguna Ubuntu, anda bisa membaca tulisan kami lainnya tentang cara installl LEMP stack di Ubuntu.
Yang kedua, pastikan anda telah memiliki database yang sudah ada table dan datanya untuk kita export.
Dan yang ketiga, pastikan anda memiliki akses untuk masuk ke dalam database MySQL atau MariaDB.
Export Biasa
Perintah mysqldump
bisa kita gunakan untuk mengekspor database ke dalam file teks. Yang mana file teks tersebut relatif mudah untuk kita pindahkan ke tempat lain sebagai backup data.
Perintahnya adalah sebagai berikut:
mysqldump -u [username] -p [nama-database] > [nama-file.sql]
[username]
adalah username yang anda gunakan untuk login MySQL/MariaDB[nama-database]
adalah nama database yang akan anda export[nama-file]
adalah nama file teks yang menjadi output hasil ekspor data. Nama file ini tidak harus berekstensi.sql
.
Dalam contoh di bawah, saya akan mengekspor database kampus
ke dalam file bernama 08-01-2020-kampus.sql
mysqldump -u root -p kampus > 08-01-2020-kampus.sql
Setelah itu sistem akan meminta anda untuk memasukkan password. Jika password anda benar, sistem akan mulai mengekspor database anda. Jika database anda memiliki jumlah data yang besar, proses ini bisa memakan waktu yang cukup lama.
Setelah proses selesai anda bisa membuka file tersebut untuk melihat hasil query yang terekspor.
Opsi –add-drop-table
Anda bisa menambahkan opsi --add-drop-table
agar hasil query yang terekspor memuat perintah untuk mendrop semua table yang ada pada database yang akan anda impor nantinya.
Anda bisa lakukan perintah berikut:
mysqldump --add-drop-table -u root -p kampus > 08-01-2020-kampus.sql
Lalu buka file 08-01-2020-kampus.sql
dengan teks editor favorit anda dan perhatikan bedanya dengan hasil yang tanpa opsi --add-drop-table
.
Export Tanpa Password Prompt
Pada percobaan di atas, anda akan selalu dimintai untuk menulis password. Proses ini tentu membutuhkan aksi manual. Bayangkan jika anda ingin melakukan backup database secara otomatis, misal setiap jam 12 malam. Mungkinkah anda akan menulis password secara manual pada saat password prompt muncul? Tentu saja tidak bisa.
Untuk bisa melakukan ekspor data atau backup data tanpa harus mengisi password prompt, anda harus menuliskan password anda setelah flag -p
. Berikut ini contoh jika password saya adalah 12345
.
mysqldump --add-drop-table -u root -p12345 kampus > 08-01-2020-kampus.sql
Tentu saja cara ini tidak aman karena password anda terlihat jelas. Maka dari itu anda harus lebih berhati-hati jangan sampai ada orang sembarangan yang memiliki akses ke server anda. Tapi kalau hanya data di local server, maka hal ini tidak menjadi soal.
Import Biasa
Kita telah melakukan ekspor data. Sekarang kita ingin mengimpornya lagi ke tempat lain atau ke database lain.
Untuk mengimpor database yang telah kita ekspor sebelumnya, kita bisa menggunakan perintah mysql
pada command line. Perintahnya tidak jauh berbeda dengan saat kita mengekspor, hanya sedikit saja yang berbeda. Perintahnya adalah:
mysql -u [username] -p [nama-database] < [nama-file.sql]
[username]
adalah username yang anda gunakan untuk login MySQL/MariaDB[nama-database]
adalah nama database yang anda jadikan target untuk impor data[nama-file]
adalah nama file yang berisi backup data yang akan anda masukkan kedalam database.
Misalkan saya akan mengimpor file data-kampus-lama.sql
ke dalam database kampus_baru
, maka saya lakukan dengan perintah berikut:
mysql -u root -p kampus_baru < data-kampus-lama.sql
Import Tanpa Password Prompt
Sama dengan cara ekspor data tanpa password prompt, anda hanya perlu menuliskan password anda setelah flag -p
. Akan tetapi, tentu saja cara seperti ini lebih tidak aman apalagi jika server anda memiliki banyak user.
mysql -u root -p12345 < data-kampus-lama.sql
Duplikasi Database
Jika kita mengembangankan atau me-maintain satu website/sistem berskala besar, biasanya kita memiliki berbagai macam versi duplikat dari sistem tersebut. Katakanlah kita memiliki setidaknya 2 saluran sistem: saluran production
, dan saluran development
.
Seringkali kita ingin langsung menduplikat database dari saluran production ke database yang digunakan untuk development agar kita bisa mendapatkan data yang identik dengan data yang terbaru untuk uji coba tertentu. Kita bisa melakukannya hanya dengan satu baris perintah:
mysqldump --add-drop-table -u [username] -p[password] [nama-db] | mysql -u [username] -p[password] [nama-db-target]
Atau misalkan kita ingin membackup data dari satu database ke database lain. Kita juga bisa melakukannya dengan perintah di atas.
Misalkan saya mempunyai data sebagai berikut:
- username:
root
- password:
12345
- database yang akan diduplikat:
kampus
- database yang jadi target impor:
kampus_backup
Maka perintahnya akan menjadi seperti ini:
mysqldump --add-drop-table -u root -p12345 kampus | mysql -u root -p12345 kampus_backup
Tunggu hingga proses selesai. Setelah itu kita bisa saksikan bahwa database yang menjadi target impor sama persis dengan database asal.
Kesimpulan
Perintah export dan import data MySQL termasuk perintah dasar yang harus diketahui oleh web developer mau pun sysadmin. Hal ini bisa diselesaikan dengan mudah menggunakan tool-tool yang bersifat GUI. Namun tetap saja skill mengoperasikan MySQL dengan command line sangat penting sekali untuk dikuasai. Apalagi jika kita sudah terjun langsung ke server. Yang mana tipikal dari server adalah tidak GUI, sehingga kita harus menyelesaikan semuanya melalui command line.
Perintah mysqldump
memiliki beberapa opsi. Pada tulisan ini kita telah mencoba opsi --add-drop-table
. Untuk melihat opsi lain dari perintah mysqldump
, anda bisa pergi ke dokumentasi resmi tentang mysqldump
.
Semoga bermanfaat.