Tutorial Belajar MySQL: Cara Membackup Database MySQL Menggunakan Mysqldump

Menggunakan mysqldump merupakan cara paling praktis untuk membackup atau memindahkan tabel MySQL dari sebuah komputer ke komputer lainnya. Dalam tutorial belajar MySQL di duniailkom kali ini, saya akan membahas cara membackup database mysql menggunakan mysqldump, serta cara me-restore kembali database tersebut.

Tutorial ini menggunakan database mahasiswa yang dibuat pada tutorial Cara Menjalankan Query MySQL dari File Teks.

Cara Menggunakan Mysqldump

Mysqldump sebenarnya adalah sebuah program atau aplikasi internal yang ikut disertakan ketika kita menginstall MySQL. Anda akan menemukan file mysqldump.exe di dalam folder bin pada folder instalasi MySQL. Jika mengikuti tutorial cara menginstall MySQL di duniailkom, folder tersebut akan berada di alamat D:\MySQL\bin atau D:\MySQL 5.6\bin.

Apabila anda menggunakan setingan default pada saat menginstall MySQL, maka folder aplikasi MySQL ini berada di C:\Program Files\MySQL\MySQL Server 5.6\bin.

Lokasi folder program mysqldump MySQL

Aplikasi mysqldump biasanya digunakan untuk membuat file teks external yang berisi seluruh perintah pembuatan tabel beserta isinya. File external ini juga bisa digunakan untuk membackup database, atau untuk memindahkan database ke komputer lain, bahkan ke aplikasi database lain.

Untuk menggunakan mysqldump, kita harus masuk kedalam folder bin MySQL (folder dimana aplikasi mysqldump.exe berada). Perintah mysqldump akan dijalankan dari luar MySQL Client (tidak perlu masuk ke MySQL).

Sebagai contoh tutorial, saya akan membackup seluruh tabel yang ada di dalam database mahasiswa. Berikut perintah yang diperlukan:

D:\MySQL 5.6\bin>mysqldump -u root mahasiswa> mahasiswa_db.sql

Perintah diatas akan membuat sebuah file teks di dalam folder D:\MySQL 5.6\bin dengan nama mahasiswa_db.sql. Anda boleh menggunakan nama file dan extension apa saja. Extension *.sql sendiri sudah menjadi 'standar' untuk file teks yang berisi query MySQL.

Selain itu, perintah diatas berasumsi bahwa anda menggunakan user root tanpa password. Apabila menggunakan password, maka perintahnya akan seperti ini:

D:\MySQL 5.6\bin>mysqldump -u root -p password mahasiswa> mahasiswa_db.sql

Untuk memastikan, silahkan buka folder D:\MySQL 5.6\bin dan cari file mahasiswa_db.sql. File inilah yang berisi seluruh perintah MySQL untuk membuat seluruh tabel beserta isinya dari database mahasiswa. Anda bisa membuka file ini menggunakan aplikasi teks editor.

File hasil mysqldump


Cara Me-restore File hasil Mysqldump

Setelah file hasil mysqldump tersedia, kita akan mencoba menginput kembali file external ini kedalam MySQL.

Sebagai persiapan awal, kita harus menyiapkan sebuah database untuk menampung tabel yang akan diinput. Ini karena file hasil mysqldump memang tidak menyertakan pembuatan database. Sebagai contoh, saya membuat sebuah database mahasiswa_baru:

D:\MySQL 5.6\bin>mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.6.22 MySQL Community Server (GPL)
 
Copyright (c) 2000, 2014, Oracle and/or its affiliates. 
All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current 
input statement.
 
mysql> CREATE DATABASE mahasiswa_baru;
Query OK, 1 row affected (0.00 sec)

Untuk menjalankan file mahasiswa_db.sql, terdapat 2 cara: dari luar MySQL Client, atau dari dalam MySQL Client (menggunakan perintah source). Kedua cara ini telah saya bahas dalam tutorial Cara Menjalankan Query MySQL dari File Teks.

Kali ini saya akan menggunakan cara dari luar MySQL Client. Silahkan keluar dari MySQL Client (jika masih berada di dalamnya), kemudian gunakan perintah berikut:

D:\MySQL 5.6\bin>mysql -u root mahasiswa_baru < mahasiswa_db.sql

Perhatikan bahwa kali ini saya tidak menggunakan mysqldump, tapi hanya mysql saja. Setelah memberikan informasi tentang user (root), berikutnya adalah perintah mahasiswa_baru < mahasiswa_db.sql. Perintah ini berarti: input file mahasiswa_db.sql ke database mahasiswa_baru. Jika tidak ada pesan error yang tampil, maka tabel daftar_dosen dan mata_kulian telah sukses diinput ke database mahasiswa_baru.

Untuk memastikan, silahkan masuk ke MySQL Client dan periksa database mahasiswa_baru:

D:\MySQL 5.6\bin>mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.6.22 MySQL Community Server (GPL)
 
Copyright (c) 2000, 2014, Oracle and/or its affiliates. 
All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current 
input statement.
 
mysql> USE mahasiswa_baru;
Database changed
mysql> SHOW TABLES;
+--------------------------+
| Tables_in_mahasiswa_baru |
+--------------------------+
| daftar_dosen             |
| mata_kuliah              |
+--------------------------+
2 rows in set (0.00 sec)
 
mysql> SELECT * FROM daftar_dosen;
+------------+------------------+------------+-----------+
| NIP        | nama_dosen       | no_hp      | alamat    |
+------------+------------------+------------+-----------+
| 0160436012 | Sabrina Sari     | 0812349900 | Pekanbaru |
| 0260432002 | Maya Ari Putri   | 0812345234 | Palembang |
| 0275430005 | Susi Indriani    | 0812656532 | Palembang |
| 0480432066 | Tia SariSantrini | 0812451177 | Padang    |
| 0576431001 | M. Siddiq        | 0812979005 | Jakarta   |
| 0770435006 | Rubin Hadi       | 0812567678 | Papua     |
| 0869437003 | Arif Mustalifah  | 0812338877 | Aceh      |
| 1080432007 | Arif Budiman     | 0812456345 | Jakarta   |
+------------+------------------+------------+-----------+
8 rows in set (0.00 sec)

Dapat terlihat, kedua tabel telah sukses di bentuk.


Perintah mysqldump merupakan salah satu perintah paling penting di dalam MySQL. mysqldump bisa digunakan untuk melakukan backup database secara reguler untuk mengantisipasi hal-hal yang tidak diinginkan.

3 Comments

  1. edo
    27 May 17
  2. Jejen Juanda
    10 Jun 20
    • Andre
      10 Jun 20

Add Comment