Android

Bagaimana untuk membuat sandaran dan memulihkan pangkalan data mysql dengan mysqldump

MySQL Export Database using Command Line (mysqldump)

MySQL Export Database using Command Line (mysqldump)

Isi kandungan:

Anonim

Tutorial ini menerangkan cara untuk membuat sandaran dan memulihkan pangkalan data MySQL atau MariaDB dari baris perintah menggunakan utiliti mysqldump.

Fail sandaran yang dibuat oleh utiliti mysqldump pada dasarnya adalah satu set penyataan SQL yang boleh digunakan untuk mencipta semula pangkalan data asal. Perintah mysqldump juga boleh menjana fail dalam format CSV dan XML.

Anda juga boleh menggunakan utiliti mysqldump untuk memindahkan pangkalan data MySQL anda ke pelayan MySQL lain.

Sintaks Perintah Mysqldump

Sebelum masuk ke cara menggunakan arahan mysqldump, mari bermula dengan mengkaji sintaks dasar.

Ungkapan utiliti mysqldump mengambil bentuk berikut:

mysqldump > file.sql

  • options - Pilihan mysqldump file.sql - file.sql dump (sandaran)

Untuk menggunakan arahan mysqldump pelayan MySQL mesti diakses dan berjalan.

Backup Pangkalan Data MySQL Tunggal

Kes penggunaan yang paling umum alat mysqldump adalah untuk membuat sandaran pangkalan data tunggal.

Sebagai contoh, untuk membuat sandaran pangkalan data yang dinamakan database_name menggunakan root pengguna dan simpannya ke fail bernama database_name.sql anda akan menjalankan perintah berikut:

mysqldump -u root -p database_name > database_name.sql

Anda akan diminta memasukkan kata laluan root. Selepas pengesahan berjaya, proses dump akan bermula. Bergantung kepada saiz pangkalan data, proses itu boleh mengambil sedikit masa.

mysqldump database_name > database_name.sql

Backup Multiple MySQL Databases

Untuk membuat sandaran pelbagai pangkalan data MySQL dengan satu arahan, anda perlu menggunakan pilihan --database diikuti dengan senarai pangkalan data yang ingin anda sandarkan. Setiap nama pangkalan data mesti dipisahkan mengikut ruang.

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

Perintah di atas akan mencipta fail dump yang mengandungi kedua-dua pangkalan data.

Sandaran Semua Pangkalan MySQL

Gunakan pilihan --all-databases untuk menyokong semua pangkalan data MySQL:

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

Sama seperti contoh terdahulu arahan di atas akan mencipta fail dump tunggal yang mengandungi semua pangkalan data.

Sandarkan semua pangkalan data MySQL untuk memisahkan fail

Utiliti mysqldump tidak menyediakan pilihan untuk membuat sandaran semua pangkalan data untuk memisahkan fail tetapi kita dengan mudah mencapai itu dengan bash sederhana FOR gelung:

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

Perintah di atas akan membuat fail pembuangan berasingan untuk setiap pangkalan data menggunakan nama pangkalan data sebagai nama fail.

Buat Backup Pangkalan Data MySQL Mampat

Sekiranya saiz pangkalan data adalah sangat besar ia adalah idea yang baik untuk memampatkan output. Untuk melakukan itu hanya paip output ke utiliti gzip , dan alihkannya ke fail seperti ditunjukkan di bawah:

mysqldump database_name | gzip > database_name.sql.gz

Buat Backup dengan Timestamp

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

Arahan di atas akan membuat fail dengan format berikut database_name-20180617.sql

Memulihkan dump MySQL

Anda boleh memulihkan dump MySQL menggunakan alat mysql . Sintaks umum arahan adalah seperti berikut:

mysqld database_name < file.sql

Dalam kebanyakan kes, anda perlu membuat pangkalan data untuk diimport. Jika pangkalan data sudah wujud, pertama anda perlu memadamnya.

Dalam contoh berikut, arahan pertama akan membuat pangkalan data yang dinamakan database_name dan kemudian ia akan mengimport dump database_name.sql ke dalamnya:

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

Pulihkan Pangkalan Data MySQL Tunggal dari Dump MySQL Penuh

mysql --one-database database_name < all_databases.sql

Eksport dan Import Pangkalan Data MySQL dalam Satu Perintah

Daripada membuat fail dump dari satu pangkalan data dan kemudian mengimport sandaran ke dalam pangkalan data MySQL yang lain, anda boleh menggunakan satu-liner berikut:

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

Perintah di atas akan remote_database_name output kepada klien mysql pada hos jauh dan akan mengimportnya ke pangkalan data bernama remote_database_name . Sebelum menjalankan arahan, pastikan pangkalan data telah wujud di pelayan jauh.

Automate Backups with Cron

Menggali proses penyandaran pangkalan data adalah semudah mencipta tugas cron apa yang akan menjalankan perintah mysqldump pada masa yang ditentukan.

Untuk menyediakan sandaran automatik pangkalan data MySQL menggunakan cronjob, ikuti langkah-langkah berikut:

  1. Buat fail bernama .my.cnf dalam direktori rumah pengguna anda:

    sudo nano ~/.my.cnf

    Salin dan tampal teks berikut ke dalam fail.my.cnf.

    user = dbuser password = dbpasswd

    Jangan lupa untuk menggantikan dbuser dan dbpasswd dengan pengguna pangkalan data dan kata laluan pengguna.

    Hadkan keizinan fail kelayakan supaya hanya pengguna anda mengaksesnya:

    chmod 600 ~/.my.cnf

    Buat direktori untuk menyimpan sandaran:

    mkdir ~/db_backups

    Buka fail crontab pengguna anda:

    crontab -e

    Tambah kerja cron berikut yang akan membuat sandaran nama database mydb setiap hari pada pukul 3 pagi:

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

    Jangan lupa untuk menggantikan username dengan username anda yang sebenar.

Anda juga boleh mencipta satu lagi cronjob untuk memadamkan sebarang sandaran yang lebih lama daripada 30 hari:

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

Sudah tentu, anda perlu menyesuaikan arahan mengikut lokasi sandaran dan nama fail anda. Untuk mengetahui lebih lanjut mengenai arahan mencari, lihat Cara Cari Fail di Linux Menggunakan panduan Talian Perintah.

Kesimpulannya

Tutorial ini hanya meliputi asas-asas, tetapi ia harus menjadi permulaan yang baik untuk sesiapa sahaja yang ingin belajar bagaimana membuat dan memulihkan pangkalan data MySQL dari baris perintah menggunakan utiliti mysqldump.

Anda juga boleh menyemak tutorial tentang bagaimana untuk menetapkan semula kata laluan root MySQL jika anda terlupa.

mysql mariadb backup mysqldump