Android

Cara membuat cadangan dan mengembalikan database mysql dengan mysqldump

How to Backup and Restore Database MySQL | Netbeans

How to Backup and Restore Database MySQL | Netbeans

Daftar Isi:

Anonim

Tutorial ini menjelaskan cara membuat cadangan dan memulihkan database MySQL atau MariaDB dari baris perintah menggunakan utilitas mysqldump.

File cadangan yang dibuat oleh utilitas mysqldump pada dasarnya adalah seperangkat pernyataan SQL yang dapat digunakan untuk membuat ulang database asli. Perintah mysqldump juga dapat menghasilkan file dalam format CSV dan XML.

Anda juga dapat menggunakan utilitas mysqldump untuk mentransfer database MySQL Anda ke server MySQL lain.

Sintaks Perintah Mysqldump

Sebelum membahas cara menggunakan perintah mysqldump, mari kita mulai dengan meninjau sintaks dasar.

Ekspresi utilitas mysqldump mengambil bentuk berikut:

mysqldump > file.sql

  • options - File opsi mysqldump.sql - File dump (cadangan)

Untuk menggunakan perintah mysqldump, server MySQL harus dapat diakses dan dijalankan.

Cadangkan Database MySQL Tunggal

Kasus penggunaan paling umum dari alat mysqldump adalah untuk membuat cadangan satu database.

Misalnya, untuk membuat cadangan dari database bernama database_name menggunakan root pengguna dan menyimpannya ke file bernama database_name.sql Anda akan menjalankan perintah berikut:

mysqldump -u root -p database_name > database_name.sql

Anda akan diminta memasukkan kata sandi root. Setelah otentikasi berhasil, proses dump akan dimulai. Bergantung pada ukuran database, prosesnya bisa memakan waktu.

mysqldump database_name > database_name.sql

Cadangkan Beberapa Database MySQL

Untuk --database -backup beberapa database MySQL dengan satu perintah, Anda perlu menggunakan opsi --database diikuti oleh daftar database yang ingin Anda backup. Setiap nama basis data harus dipisahkan oleh ruang.

mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql

Perintah di atas akan membuat file dump yang berisi kedua database.

Cadangkan Semua Database MySQL

Gunakan opsi --all-databases untuk mencadangkan semua database MySQL:

mysqldump -u root -p --all-databases > all_databases.sql

Sama seperti contoh sebelumnya, perintah di atas akan membuat file dump tunggal yang berisi semua basis data.

Cadangkan semua database MySQL ke file terpisah

Utilitas mysqldump tidak memberikan opsi untuk mencadangkan semua basis data ke file yang terpisah, tetapi kami dengan mudah mencapainya dengan bash FOR loop sederhana:

for DB in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $DB > "$DB.sql"; done

Perintah di atas akan membuat file dump terpisah untuk setiap database menggunakan nama database sebagai nama file.

Buat Backup Database MySQL Terkompresi

Jika ukuran basis data sangat besar itu adalah ide yang bagus untuk mengompres output. Untuk melakukan itu cukup pipa output ke utilitas gzip , dan arahkan kembali ke file seperti yang ditunjukkan di bawah ini:

mysqldump database_name | gzip > database_name.sql.gz

Buat Cadangan dengan Stempel Waktu

mysqldump database_name > database_name-$(date +%Y%m%d).sql

Perintah di atas akan membuat file dengan format database_name-20180617.sql

Mengembalikan dump MySQL

Anda dapat memulihkan dump MySQL menggunakan alat mysql . Perintah sintaks umum adalah sebagai berikut:

mysqld database_name < file.sql

Dalam kebanyakan kasus, Anda harus membuat basis data untuk diimpor. Jika database sudah ada, pertama Anda harus menghapusnya.

Pada contoh berikut ini, perintah pertama akan membuat database bernama database_name dan kemudian akan mengimpor dump database_name.sql ke dalamnya:

mysql -u root -p -e "create database database_name"; mysql -u root -p database_name < database_name.sql

Kembalikan Database MySQL Tunggal dari Dump MySQL Penuh

mysql --one-database database_name < all_databases.sql

Ekspor dan Impor Database MySQL dalam Satu Perintah

Alih-alih membuat file dump dari satu database dan kemudian mengimpor cadangan ke database MySQL lain Anda bisa menggunakan satu-liner berikut:

mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name

Perintah di atas akan menyalurkan output ke klien mysql pada host jarak jauh dan akan mengimpornya ke database bernama remote_database_name . Sebelum menjalankan perintah, pastikan database sudah ada di server jauh.

Otomatis Cadangkan dengan Cron

Mengotomatiskan proses pencadangan basis data semudah membuat tugas cron apa yang akan menjalankan perintah mysqldump pada waktu yang ditentukan.

Untuk mengatur cadangan otomatis dari database MySQL menggunakan cronjob, ikuti langkah-langkah di bawah ini:

  1. Buat file bernama .my.cnf di direktori home pengguna Anda:

    sudo nano ~/.my.cnf

    Salin dan tempel teks berikut ini ke file.my.cnf.

    user = dbuser password = dbpasswd

    Jangan lupa ganti dbpasswd dan dbpasswd dengan pengguna basis data dan kata sandi pengguna.

    Batasi izin file kredensial sehingga hanya pengguna Anda yang dapat mengaksesnya:

    chmod 600 ~/.my.cnf

    Buat direktori untuk menyimpan cadangan:

    mkdir ~/db_backups

    Buka file crontab pengguna Anda:

    crontab -e

    Tambahkan tugas cron berikut yang akan membuat cadangan dari nama database mydb setiap hari pukul 3 pagi:

    0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql

    Jangan lupa mengganti username dengan username Anda yang sebenarnya.

Anda juga dapat membuat cronjob lain untuk menghapus cadangan yang lebih dari 30 hari:

find /path/to/backups -type f -name "*.sql" -mtime +30 -delete

Tentu saja, Anda perlu menyesuaikan perintah sesuai dengan lokasi cadangan Anda dan nama file. Untuk mempelajari lebih lanjut tentang perintah find, periksa Cara Menemukan File di Linux Menggunakan panduan Command Line.

Kesimpulan

Tutorial ini hanya mencakup dasar-dasarnya, tetapi harus menjadi awal yang baik bagi siapa saja yang ingin belajar cara membuat dan mengembalikan database MySQL dari baris perintah menggunakan utilitas mysqldump.

Anda juga dapat memeriksa tutorial tentang cara mengatur ulang kata sandi root MySQL jika Anda lupa.

mysql mariadb backup mysqldump