Perintah Dasar Mysqldump
mysqldump adalah utilitas baris perintah (command line) standar yang digunakan untuk melakukan backup database MySQL atau MariaDB. Perintah ini bekerja dengan menghasilkan file dump berupa kumpulan pernyataan SQL yang dapat digunakan untuk membangun kembali database di server yang sama maupun server yang berbeda.
Sintaks Utama Backup Database
Untuk melakukan backup satu database spesifik, gunakan format perintah berikut di terminal Linux Anda:
mysqldump -u [username] -p [database_name] > [filename].sqlSetelah menekan Enter, sistem akan meminta kata sandi (password) pengguna database tersebut. Pastikan Anda memiliki hak akses yang cukup pada database yang dituju.
Tabel Opsi Perintah Mysqldump
| Opsi | Fungsi |
|---|---|
| -u | Menentukan nama pengguna (username) MySQL. |
| -p | Meminta input kata sandi (password) secara interaktif. |
| --all-databases | Backup seluruh database yang ada di server. |
| --databases | Backup satu atau lebih database spesifik. |
| --single-transaction | Mencegah penguncian tabel saat proses backup (sangat disarankan untuk InnoDB). |
Skenario Penggunaan Lanjutan
Dalam lingkungan produksi, disarankan untuk menambahkan parameter --single-transaction guna memastikan integritas data tanpa mengganggu proses baca-tulis aplikasi yang sedang berjalan. Berikut adalah contoh perintah untuk backup database dengan kompresi langsung:
mysqldump -u root -p --single-transaction nama_database | gzip > backup_database.sql.gzPenggunaan gzip sangat disarankan untuk menghemat ruang penyimpanan, terutama jika ukuran database Anda mencapai ratusan megabyte atau gigabyte.
Proses Restore Database
Untuk mengembalikan data dari file dump yang telah dibuat, gunakan perintah mysql dengan operator input (<):
mysql -u [username] -p [database_name] < [filename].sqlPastikan database tujuan sudah dibuat terlebih dahulu sebelum menjalankan perintah restore. Jika Anda melakukan restore ke database yang sudah ada, pastikan Anda memahami risiko penimpaan data (overwrite) yang mungkin terjadi.
Tips Troubleshooting
- Error Access Denied: Pastikan user yang digunakan memiliki hak akses
SELECTdanLOCK TABLESpada database tersebut. - File Terlalu Besar: Jika proses terputus, gunakan opsi
--quickuntuk memaksa mysqldump mengambil baris demi baris dari server alih-alih memuat seluruh tabel ke memori. - Karakter Tidak Sesuai: Selalu gunakan opsi
--default-character-set=utf8mb4jika database Anda menggunakan encoding khusus untuk menghindari korupsi data pada karakter unik.