Cara backup dan restore database MySQL dengan Mysqldump
Database merupakan komponen untuk menyimpan data dari aplikasi atau website. Kalau database bermasalah, misalnya terjadi error sistem atau faktor lain, Anda bisa kehilangan data penting. Oleh karena itu, Anda harus selalu membackup database secara rutin.
Salah satu cara efektif untuk membackup database MySQL adalah menggunakan Mysqldump. Dengan tool ini, Anda bisa menyimpan salinan database dalam format yang mudah dikelola dan siap dipulihkan kapan saja.
Penasaran cara menggunakannya? Di tutorial ini, kami akan menjelaskan cara backup database MySQL dengan Mysqldump serta memulihkannya. Mari pelajari langkah-langkahnya di bawah ini!
Apa itu Mysqldump?
Mysqldump adalah tool bawaan MySQL yang berfungsi untuk mencadangkan database website, baik di localhost maupun website yang sudah online.
Untuk menggunakannya, Anda hanya perlu menjalankan perintah melalui akses SSH, lalu salinan database Anda akan dibuat secara otomatis.
Tool berbasis CLI (Command Line Interface) ini sangat praktis karena Anda tidak perlu menginstal software tambahan. Anda juga bisa menjalankan berbagai variasi perintah untuk membackup database sesuai kebutuhan.
Selain itu, file backup yang dihasilkan akan berupa file SQL yang bisa dipindahkan ke server lain atau dipulihkan dengan mudah. File SQL tersebut juga berbentuk teks, yang bisa dibaca dan diedit kalau perlu.
Apabila ingin menggunakan tool ini, Anda bisa mulai dulu dengan mempelajari syntax perintah SQL dump untuk membackup database.
Syntax perintah SQL dump
Secara umum, berikut syntax SQL dump untuk backup database:
mysqldump -u [username] -p [database_name] > [output_file.sql]
Ini penjelasan setiap bagian kode di atas:
- mysqldump – Awalan perintah untuk menjalankan proses SQL dump.
- -u – Menunjukkan nama pengguna (username) MySQL.
- -p – Mengaktifkan prompt untuk memasukkan password pengguna MySQL.
- database_name – Nama database MySQL yang ingin dicadangkan.
- > – Operator yang menunjukkan bahwa output akan disimpan dalam sebuah file.
- output_file.sql – Nama file untuk menyimpan hasil backup, lengkap dengan ekstensi .sql.
Untuk memberi Anda gambaran yang lebih jelas, di bawah ini adalah contoh perintah untuk membackup database bernama website_db ke file backup.sql:
mysqldump -u root -p website_db > backup.sql
Nah, kalau Anda sudah mulai memahaminya, mari lanjut ke cara menggunakan SQL dump untuk membackup database di bawah ini.
Cara backup database MySQL dengan Mysqldump
Sebelum mencoba berbagai cara backup, Anda perlu mempersiapkan hal-hal berikut ini lebih dulu:
Layanan hosting dengan akses SSH
Pastikan layanan hosting Anda mendukung akses SSH, karena perintah Mysqldump akan dijalankan melalui Terminal.
Apabila menggunakan hPanel, Anda bisa menemukan informasi SSH melalui menu Tingkat Lanjut → SSH Access dari dashboard website Anda di hPanel. Pastikan statusnya sudah aktif.
Kemudian, akses server Anda melalui SSH menggunakan Terminal atau PuTTY dengan memasukkan perintah di bawah ini. Ganti username, ip, dan port dengan informasi SSH Anda:
ssh username@ip -p port
Kalau menggunakan control panel lain, langkah-langkahnya juga tidak terlalu berbeda kok. Misalnya di cPanel, Anda bisa langsung membuka Terminal melalui menu Advanced.
Informasi database MySQL
Setelah itu, temukan informasi nama database dan user MySQL Anda. Catat nama database, username, dan password MySQL yang ingin dibackup, karena akan dibutuhkan nanti untuk menjalankan perintah.
Di hPanel, temukan informasi database Anda melalui menu Database → Pengelolaan. Apabila tidak ingat kata sandinya, ganti melalui menu titik tiga di samping database, lalu pilih Ubah Password.
Setelah semuanya siap, mari lanjut ke langkah-langkah backup database menggunakan Mysqldump.
Backup satu database MySQL
Metode di bawah ini bertujuan untuk membackup satu database tertentu. Berikut langkah-langkahnya:
- Pastikan Anda sudah tersambung ke SSH di jendela Terminal atau PuTTY.
- Masukkan perintah berikut untuk membuat folder khusus agar file backup tidak tercampur dengan file lainnya. Ganti username_SSH dengan informasi Anda:
mkdir /home/username_SSH/public_html/backup
- Jalankan perintah berikut untuk membackup database ke folder backup. Jangan lupa untuk mengganti database_username, database_name, dan username_SSH:
mysqldump -u database_username -p database_name > /home/username_SSH/public_html/backup/backup_satu_database.sql
- Masukkan password MySQL saat diminta, lalu tekan enter.
- Selesai! File backup akan disimpan di folder public_html/backup dengan nama backup_satu_database.sql.
Backup beberapa database MySQL
Apabila perlu membackup lebih dari satu database sekaligus, Anda bisa menggunakan perintah mysqldump dengan nama-nama database yang dipisahkan oleh spasi.
Berikut langkah-langkahnya:
- Pastikan Anda sudah tersambung ke server melalui SSH.
- Gunakan perintah berikut untuk membackup beberapa database. Ganti website_db dan blog_db dengan nama-nama database yang ingin Anda backup:
mysqldump -u database_username -p --databases website_db blog_db > /home/username_SSH/public_html/backup/backup_beberapa_database.sql
- Masukkan Password MySQL kalau diminta. File backup untuk kedua database tersebut akan disimpan di folder backup dengan nama backup_beberapa_database.sql.
Backup seluruh database MySQL
Untuk membackup seluruh database MySQL yang ada di server, Anda bisa menggunakan opsi –all-databases. Caranya juga masih sama:
- Jalankan perintah backup semua database berikut di jendela SSH:
mysqldump -u database_username -p --all-databases > /home/username_SSH/public_html/backup/backup_semua_database.sql
- Masukkan password MySQL apabila diminta, lalu tekan Enter.
- Seluruh database yang ada di server MySQL Anda akan dibackup dan disimpan di folder backup dengan nama backup_semua_database.sql.
Backup database dengan keterangan waktu
Untuk memastikan setiap backup memiliki nama yang berbeda-beda dan mudah dikenali, Anda bisa menambahkan timestamp atau keterangan waktu pada nama file backup.
Ikuti langkah-langkahnya di bawah ini:
- Di jendela SSH, masukkan perintah berikut. Masih seperti sebelumnya, ganti contoh kode dengan informasi Anda sendiri:
mysqldump -u database_username -p database_name > /home/username_SSH/public_html/backup/backup_database_$(date +\%F).sql
- Masukkan kata sandi MySQL Anda kalau diminta, kemudian tekan Enter.
Perintah di atas akan menambahkan cap waktu (dalam format YYYY-MM-DD) pada nama file backup.
Backup database MySQL terkompresi
Untuk menghemat ruang penyimpanan, Anda bisa membuat file backup yang terkompresi. Langkah-langkahnya seperti berikut:
- Masih melalui jendela SSH, dunakan perintah berikut untuk membackup database dan mengompres hasilnya ke dalam format .gz:
mysqldump -u database_username -p database_name | gzip > /home/username_SSH/public_html/backup/backup_database_$(date +\%F).sql.gz
- Masukkan password MySQL, tekan Enter, lalu selesai. File backup .gz database Anda akan disimpan di folder backup.
Backup database MySQL otomatis dengan Cron Job
Apabila tidak sempat backup database secara manual, Anda bisa menggunakan Cron Job untuk melakukan backup otomatis secara berkala. Namun, langkah-langkahnya akan sedikit berbeda dengan metode-metode sebelumnya.
Ini cara backup database MySQL menggunakan Cron Job:
- Pastikan jendela SSH masih tersambung ke server Anda.
- Jalankan perintah berikut untuk membuka file .my.cnf menggunakan editor Nano:
nano ~/.my.cnf
- Di editor Nano, copy-paste konfigurasi berikut. Ganti database_username dan database_password dengan informasi MySQL Anda:
[client] user = database_username password = database_password
- Setelah selesai, tekan Ctrl + X, kemudian Y untuk menyimpan perubahan, lalu tekan Enter untuk keluar dari editor Nano.
- Batasi izin file .my.cnf agar kredensial di dalamnya tidak bisa diakses oleh orang lain dengan perintah berikut:
chmod 600 ~/.my.cnf
- Jalankan perintah berikut untuk membuat file cron yang akan digunakan untuk mengeksekusi file Mysqldump.
crontab -e
- Masukkan perintah berikut untuk membackup database MySQL secara otomatis dan berkala dengan Cron Job. Dalam contoh ini, frekuensinya adalah setiap hari pada pukul 10 pagi:
0 10 * * * mysqldump -u database_username -p database_name > /home/username_SSH/public_html/backup/backup_cronjob-$(date +\%Y\%m\%d).sql
- Simpan perubahan dengan mengetikkan Esc, kemudian ketik :wq untuk keluar dan menyimpan file cron. Berikut outputnya:
Selesai! Anda sudah mempelajari berbagai metode untuk membackup database MySQL menggunakan Mysqldump. Berikutnya, Anda mungkin perlu menyimpan file ini di lokasi lain agar lebih aman.
Cara menemukan hasil backup MySQL Dump
Setelah menjalankan perintah Mysqldump untuk membackup database MySQL, Anda bisa menemukan file hasil backup tersebut di lokasi yang sudah Anda tentukan.
Berikut cara menemukannya:
1. Lokasi file backup
Secara default, kalau Anda mengikuti langkah-langkah di atas, file backup MySQL dump akan disimpan di dalam folder /public_html/backup/ atau folder lain yang Anda tentukan saat menjalankan perintah mysqldump.
Contohnya, kalau Anda menggunakan perintah berikut:
mysqldump -u database_username -p database_name > /home/username_SSH/public_html/backup/backup_satu_database.sql
Artinya file backup_satu_database.sql akan tersimpan di dalam folder /home/username_SSH/public_html/backup/.
2. Akses melalui file manager
Anda juga bisa melihat hasil proses backup melalui File Manager di control panel hosting Anda.
Apabila menggunakan hPanel, Anda bisa mengikuti langkah-langkah berikut untuk mengakses File Manager Hostinger:
- Di hPanel, buka menu Website lalu klik Dashboard di samping website Anda.
- Akses File Manager melalui dashboard hPanel.
- Buka folder public_html di halaman File Manager, lalu temukan folder backup.
- File backup yang Anda buat akan ada di dalamnya, dengan nama file sesuai yang Anda tentukan:
Cara restore hasil Mysqldump
Setelah membuat backup database MySQL menggunakan Mysqldump, Anda bisa memulihkannya atau restore kapan pun saat diperlukan.
Di bagian ini, kami akan menjelaskan beberapa cara untuk restore database MySQL dari hasil Mysqldump.
Restore database dari satu file backup
Apabila Anda hanya punya satu file backup yang berisi satu database, berikut langkah-langkah untuk memulihkannya:
- Pastikan Anda tersambung ke server melalui SSH atau Terminal.
- Jalankan perintah berikut untuk restore database dari file backup. Ganti database_username, database_name, dan backup_file.sql sesuai dengan data Anda:
mysql -u database_username -p database_name < /home/username_SSH/public_html/backup/backup_satu_database.sql
- Masukkan password MySQL saat diminta, lalu tekan Enter. Proses restore akan berjalan.
- Verifikasi hasil restore dengan memeriksa tabel di database:
SHOW TABLES;
Restore satu database dari backup penuh
Apabila Anda membackup semua database menggunakan opsi –all-databases tapi hanya ingin memulihkan salah satu database, Anda bisa menggunakan opsi –one-database.
Langkah-langkahnya adalah sebagai berikut:
- Akses server Anda melalui SSH atau Terminal.
- Masukkan perintah berikut, dengan mengganti database_username, database_name, dan full_backup_file.sql sesuai data Anda:
mysql -u database_username -p --one-database database_name < /home/username_SSH/public_html/backup/full_backup_file.sql
- Masukkan password MySQL kalau diminta, lalu tekan Enter. Tunggu sampai proses restore selesai.
- Verifikasi hasilnya dengan memeriksa tabel di database:
SHOW TABLES;
Selesai! Anda pun berhasil memulihkan database yang sudah dibuat menggunakan perintah Mysqldump.
Selanjutnya, Anda bisa mengelola database secara lebih efisien dan membackupnya untuk melindungi data-data penting di website Anda apabila terjadi hal-hal yang tidak terduga.
Sudah paham cara menggunakan Mysqldump, kan?
Backup database rutin akan membantu Anda mencegah risiko kehilangan data penting. Dengan memahami cara backup database MySQL dengan Mysqldump, Anda kini memiliki opsi lain untuk melindungi data website dari kejadian yang tidak terduga.
Selain itu, Anda bisa memanfaatkan variasi perintah Mysqldump untuk membackup database sesuai kebutuhan.
Agar tidak perlu melakukan tugas berulang, otomatiskan proses backup menggunakan Cron Job. Dengan begitu, Anda bisa fokus menangani tugas-tugas penting lainnya tanpa khawatir tentang data yang belum dibackup.
Apabila Anda masih memiliki pertanyaan atau kesulitan dalam mengikuti langkah-langkah di tutorial ini, jangan sungkan untuk menyampaikannya lewat kolom komentar, ya. Selamat mencoba dan semoga berhasil!