MySQL Tutorial - 40 - BACKUP & RESTORE MySQL Database
İçindekiler:
- Mysqldump Komut Sözdizimi
- Tek bir MySQL Veritabanını Yedekleme
- Birden Çok MySQL Veritabanını Yedekle
- Tüm MySQL Veritabanlarını Yedekle
- Tüm MySQL veritabanlarını ayrı dosyalara yedekleyin
- Sıkıştırılmış bir MySQL Veritabanı Yedeklemesi Oluşturma
- Zaman Damgasıyla Yedek Oluşturma
- MySQL dökümünü geri yükleme
- Tek bir MySQL Veritabanını Tam MySQL Dökümünden Geri Yükleme
- Bir Komutta MySQL Veritabanını Verme ve Alma
- Cron ile Yedeklemeleri Otomatikleştirin
- Sonuç
Bu öğretici, mysqldump yardımcı programını kullanarak MySQL veya MariaDB veritabanlarının komut satırından nasıl yedekleneceğini ve geri yükleneceğini açıklar.
Mysqldump yardımcı programı tarafından oluşturulan yedekleme dosyaları temelde özgün veritabanını yeniden oluşturmak için kullanılabilecek bir SQL deyimleri kümesidir. Mysqldump komutu CSV ve XML biçiminde dosyalar da oluşturabilir.
MySQL veritabanınızı başka bir MySQL sunucusuna aktarmak için mysqldump yardımcı programını da kullanabilirsiniz.
Mysqldump Komut Sözdizimi
Mysqldump komutunu kullanmaya başlamadan önce, temel sözdizimini inceleyerek başlayalım.
Mysqldump yardımcı programı ifadeleri aşağıdaki formu alır:
mysqldump > file.sql
-
options
- mysqldump seçeneklerfile.sql
- Döküm (yedekleme) dosyası
Mysqldump komutunu kullanmak için MySQL sunucusunun erişilebilir ve çalışıyor olması gerekir.
Tek bir MySQL Veritabanını Yedekleme
Mysqldump aracının en yaygın kullanım durumu tek bir veritabanını yedeklemektir.
Örneğin, kullanıcı
root
kullanarak database_name adlı
database_name
yedeğini oluşturmak ve database_name.sql adlı bir dosyaya kaydetmek için aşağıdaki komutu çalıştırın:
mysqldump -u root -p database_name > database_name.sql
Kök parolasını girmeniz istenir. Başarılı kimlik doğrulamasından sonra döküm işlemi başlayacaktır. Veritabanı boyutuna bağlı olarak, işlem biraz zaman alabilir.
mysqldump database_name > database_name.sql
Birden Çok MySQL Veritabanını Yedekle
Birden fazla MySQL veritabanını tek bir komutla yedeklemek için,
--database
seçeneğini ve ardından yedeklemek istediğiniz veritabanlarının listesini kullanmanız gerekir. Her veritabanı adı boşlukla ayrılmalıdır.
mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql
Yukarıdaki komut her iki veritabanını da içeren bir döküm dosyası oluşturur.
Tüm MySQL Veritabanlarını Yedekle
Tüm MySQL veritabanlarını yedeklemek için
--all-databases
seçeneğini kullanın:
mysqldump -u root -p --all-databases > all_databases.sql
Önceki örnekte olduğu gibi, yukarıdaki komut tüm veritabanlarını içeren tek bir döküm dosyası oluşturur.
Tüm MySQL veritabanlarını ayrı dosyalara yedekleyin
mysqldump
yardımcı programı, tüm veritabanlarını ayrı dosyalara yedekleme seçeneği sunmaz, ancak bunu basit bir bash
FOR
döngüsü ile kolayca başarabiliriz:
for DB in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $DB > "$DB.sql"; done
Yukarıdaki komut, dosya adı olarak veritabanı adını kullanarak her veritabanı için ayrı bir döküm dosyası oluşturur.
Sıkıştırılmış bir MySQL Veritabanı Yedeklemesi Oluşturma
Veritabanı boyutu çok büyükse, çıktıyı sıkıştırmak iyi bir fikirdir. Bunu yapmak için, çıktıyı
gzip
yardımcı programına
gzip
ve aşağıda gösterildiği gibi bir dosyaya yönlendirin:
mysqldump database_name | gzip > database_name.sql.gz
Zaman Damgasıyla Yedek Oluşturma
mysqldump database_name > database_name-$(date +%Y%m%d).sql
Yukarıdaki komut aşağıdaki
database_name-20180617.sql
biçiminde bir dosya oluşturur
MySQL dökümünü geri yükleme
MySQL dökümünü
mysql
aracını kullanarak geri yükleyebilirsiniz. Genel sözdizimi komutu aşağıdaki gibidir:
mysqld database_name < file.sql
Çoğu durumda içe aktarmak için bir veritabanı oluşturmanız gerekir. Veritabanı zaten varsa, önce silmeniz gerekir.
Aşağıdaki örnekte, ilk komut database_name adlı bir
database_name
ve sonra
database_name.sql
dökümünü bu
database_name.sql
alır:
mysql -u root -p -e "create database database_name";
mysql -u root -p database_name < database_name.sql
Tek bir MySQL Veritabanını Tam MySQL Dökümünden Geri Yükleme
mysql --one-database database_name < all_databases.sql
Bir Komutta MySQL Veritabanını Verme ve Alma
Bir veritabanından döküm dosyası oluşturmak ve ardından yedeklemeyi başka bir MySQL veritabanına almak yerine, aşağıdaki tek astarı kullanabilirsiniz:
mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name
Yukarıdaki komut, çıkışı uzak ana bilgisayardaki bir mysql istemcisine
remote_database_name
ve bunu
remote_database_name
adlı bir veritabanına
remote_database_name
. Komutu çalıştırmadan önce, veritabanının uzak sunucuda zaten var olduğundan emin olun.
Cron ile Yedeklemeleri Otomatikleştirin
Veritabanlarını yedekleme işlemini otomatikleştirmek, belirli bir zamanda mysqldump komutunu çalıştıracak bir cron işi oluşturmak kadar basittir.
Cronjob kullanarak bir MySQL veritabanının otomatik yedeklerini ayarlamak için aşağıdaki adımları izleyin:
-
Kullanıcı ana dizininizde
.my.cnf
adlı bir dosya oluşturun:sudo nano ~/.my.cnf
Aşağıdaki metni kopyalayıp.my.cnf dosyasına yapıştırın.
user = dbuser password = dbpasswd
dbuser
vedbpasswd
veritabanı kullanıcısı ve kullanıcıdbpasswd
değiştirmeyi unutmayın.Kimlik bilgileri dosyasının izinlerini yalnızca kullanıcınızın ona erişebilmesi için kısıtlayın:
chmod 600 ~/.my.cnf
Yedekleri depolamak için bir dizin oluşturun:
mkdir ~/db_backups
Kullanıcı crontab dosyanızı açın:
crontab -e
Her gün 03:00 de
mydb
veritabanı adının bir yedeğini oluşturacak aşağıdaki cron işini ekleyin:0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql
Kullanıcı adını gerçek kullanıcı adınızla değiştirmeyi unutmayın.
30 günden daha eski yedeklemeleri silmek için başka bir cronjob da oluşturabilirsiniz:
find /path/to/backups -type f -name "*.sql" -mtime +30 -delete
Elbette, komutu yedekleme konumunuza ve dosya adlarına göre ayarlamanız gerekir. Find komutu hakkında daha fazla bilgi edinmek için Linux'ta Dosyaları Bulma Komut Satırını Kullanma kılavuzumuza bakın.
Sonuç
Bu öğretici yalnızca temel bilgileri içerir, ancak mysqldump yardımcı programını kullanarak MySQL veritabanlarının komut satırından nasıl oluşturulacağını ve geri yükleneceğini öğrenmek isteyen herkes için iyi bir başlangıç olmalıdır.
Unutmanız durumunda bir MySQL kök parolasını nasıl sıfırlayacağınızla ilgili öğreticiyi de kontrol edebilirsiniz.
mysql mariadb yedekleme mysqldumpWLWBackup ile Yedekleme ve Geri Yükleme: Yedekleme, Windows Live Writer ayarlarını geri yükle
Windows Live Writer Backup, Windows Live Writer için ücretsiz bir yedekleme yardımcı programıdır. WLWBackup yardımcı programını kullanarak blog ayarlarını, gönderilerini ve eklentilerini yedekleyebilirsiniz
Düzeltme: Windows 7 SP1`de Yedekleme ve Geri Yükleme`yi kullanarak geri yükleme işlemi başarısız oluyor. SP1
Bir sorunla karşılaşıyorsunuz, nerede çalıştığınız zaman Bilgisayarınızdaki Denetim Masası aracılığıyla Yedekleme ve Geri Yükleme hizmetini kullanarak dosyaları geri yükleme veya yedekleme?
Sistem Geri Yükleme İşleminden Sonra Hangi Program ve Dosyalar Etkilenecektir> Sistem geri yükleme kişisel dosyalarımı veya dokümanlarımı etkiler veya silebilir ? Bir sistemi geri yükledikten sonra hangi programlar ve sürücüler etkilenecek? Bir sistem geri yükleme etkisinden sonra gerçekleşecek değişiklikler.
Bir sistem geri yüklemesi kişisel dosyamı veya dokümanlarımı etkiler mi, yoksa silecek mi? Bir sistem geri yüklemesini gerçekleştirdikten sonra hangi program veya sürücüler etkilenecek? Tüm değişiklikler bir sistemin geri yüklenmesini etkiler mi? Bunu nasıl bulabilirim? Burada cevaplamaya çalışacağım bazı yaygın sorular: