MySQL veritabanlarını yedekleme ve geri yükleme (Windows sürümü)

Sayfa güncel :
Sayfa oluşturma tarihi :

Çalışma ortamı

MySQL (İngilizce)
  • MySQL 8.0 Topluluk Sürümü
Windows
  • pencereler 11

Önkoşullar

MySQL (İngilizce)
  • MySQL 8.0
Windows
  • pencereler 11
  • pencereler 10
Windows Sunucusu
  • Windows Sunucusu 2022
  • Windows Sunucusu 2019
  • Windows Sunucusu 2016
  • Windows Server 2012 R2

önkoşul

  • MySQL için bir veritabanı kurulur.
  • Yedeklenecek veritabanı zaten var.
  • Komut isteminden mysql'i çalıştırabilmeniz için ortam değişkenlerini ayarladınız.

Yedekleme türleri nelerdir?

Burada ayrıntılı olarak tartışılmasa da, MySQL aşağıdaki yedekleme türlerine sahiptir:

Yedekleme
KomutlarıYedekleme Veri TürleriAçıklamalar
mysqldump Mantıksal Yedeklemeler Asırlık bir yedekleme yöntemi. GUI de bunu kullanır
mysqlpump Mantıksal Yedeklemeler mysqldump'ın geliştirilmiş sürümü
MySQL Kabuk Örneği Dökümü Yardımcı Programı ve Döküm Yükleme Yardımcı Programı Mantıksal Yedeklemeler Şu anda en son mantıksal yedekleme
Percona XtraBackup Fiziksel Yedeklemeler Fiziksel yedekleme için üçüncü taraf desteği
KLON EKLENTISI Fiziksel Yedeklemeler MySQL resmi fiziksel yedeklemeleri. Ancak, bir eklenti eklemeniz gerekir.

Veritabanlarını GUI (MySQL Workbench) ile yedekleme

GUI'de komut kullanmadan güvenli bir şekilde çalışmak istiyorsanız, MySQL Workbench ile yedekleme yapabilirsiniz. MySQL Workbench tarafından gerçekleştirilen yedekleme türü "mysqldump" olacaktır.

MySQL Workbench'i başlatın.

Yedeklemek istediğiniz veritabanını içeren bağlantıyı seçin.

Veritabanı yedeklenecekken, soldaki Gezgin'den Yönetim sekmesini seçin ve ardından Verileri Dışarı Aktarma'yı seçin.

Veri Dışa Aktarma ekranı açılır. Ekran oldukça geniştir, bu nedenle sağ alttaki "Dışa Aktarmayı Başlat" düğmesini görene kadar pencereyi genişletin.

İlk olarak, yedeklemek istediğiniz veritabanlarını seçin. Birden fazla da seçebilirsiniz.

"Dışa Aktarılacak Nesneler" bölümünde, prosedürleri ve tetikleyicileri de yedeklemeyi seçebilirsiniz. Bu alan isteğe bağlıdır.

"Dışa Aktarma Seçenekleri" bölümünde aşağıdaki iki seçeneği seçebilirsiniz.

Tip Açıklaması
Döküm Proje Klasörüne Aktar Belirtilen bir klasöre tablo veya yordam dosyası olarak çıktı alın.
Bağımsız Dosyaya Aktar Her şeyi tek bir dosyaya gömün ve çıktı.

Hangi şekilde çıktı aldığınız önemli değil. Yalnızca belirli bir tabloyu geri yüklemek istiyorsanız, yukarıdaki seçimin kaldırılması kolaydır. Aşağıdaki seçim, tek bir dosyaya çıktı vererek dosyaları bir veritabanı birimi olarak taşımayı ve yönetmeyi kolaylaştırır. Bu durumda, aşağıdakileri seçtim.

Ayarları yaptıktan sonra, dışa aktarmayı başlatmak için sağ alt köşedeki "Dışa Aktarmayı Başlat" düğmesine tıklayın.

Dışa aktarma işlemi başlar ve tamamlanır.

Tek bir dosya olarak çıktısını alırsanız, şöyle görünecektir:

Bir klasöre dışa aktarırsanız, şöyle görünecektir:

GUI (MySQL Workbench) ile bir veritabanını geri yükleme

MySQL Workbench'i açın, bir bağlantı seçin, soldaki Gezgin'den Yönetim sekmesini seçin ve Veri İçe/Geri Yükleme'yi seçin. "İçe Aktar / Geri Yükle" dediği gibi, dışa aktarılan dosyadan yeni bir veritabanı oluşturabilir veya orijinal veritabanının üzerine yazabilirsiniz.

Sağ alt köşede "İçe Aktarmayı Başlat" düğmesini görene kadar pencereyi genişletin.

Dışa aktarılan dosya formatına göre "İçe Aktarma Seçenekleri"ni seçin. Bu sefer tek bir dosya olarak dışa aktardığım için aşağıda "Self-Contained File'dan İçe Aktar" seçeneğini seçtim ve dışa aktarılan dosyayı belirttim.

Geri yüklemek istediğiniz şemayı (veritabanı) seçin. Mevcut bir veritabanına geri yükleyebilir veya sağdaki "Yeni" düğmesinden yeni bir veritabanı olarak geri yükleyebilirsiniz.

Spesifikasyonları belirledikten sonra, restorasyonu başlatmak için sağ alttaki "İçe Aktarmayı Başlat" düğmesine tıklayın.

Geri yükleme tamamlandıktan sonra verilerinizin geri döndüğünden emin olun.

Komutla veritabanı yedeklemesi için bir hesap oluşturun

Tek bir komutu yürütür ve yedeklerseniz sorun olmaz, ancak örneğin, komutu önceden bir dosya olarak hazırlar ve yürütürseniz, şifreyi düz metin olarak yazmanız gerekir, bu nedenle yedekleme için ayrı bir hesap oluşturmak daha güvenlidir.

Yedekleme için gereken izinlerin bazıları, gerekli bilgilere bağlı olarak artabilir veya azalabilir.

  • OLAY
  • MASALARI KILITLE
  • SEÇMEK
  • GÖRÜNÜMÜ GÖSTER

Bir komutla oluşturursanız, böyle görünecektir. MySQL komut satırı aracını kullanın.

create user '<ユーザー名>'@'<ホスト名>' identified by '<パスワード>';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON <データベース名>.* TO '<ユーザー名>'@'<ホスト名>';
flush privileges;

örnek

create user 'backup_user'@'localhost' identified by 'password';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON test_database.* TO 'backup_user'@'localhost';
flush privileges;

Yedekleme hedefi için klasör izinleri

Yedekleme dosyasının kaydedildiği klasörün izinleri, komutu yürütme izinleriyle aynı şekilde ayarlanmalıdır. Komutu Yönetici ayrıcalıklarıyla çalıştırırsanız, klasör üzerinde herhangi bir ek izin ayarlamanız gerekmez.

(mysqldump) komutuyla veritabanını yedekleme

Komutla birkaç yedekleme var, ancak bu sefer uzun süredir kullanılan ve kararlı olan "mysqldump" ile yedekleme yapacağız.

Terminal'i (Komut İstemi) başlatmak için Başlat menüsüne sağ tıklayın. Bunun "MySQL 8.0 Komut Satırı İstemcisi" olmadığını unutmayın.

Aşağıdaki komutla yedekleyebilirsiniz:

mysqldump -u <ユーザー名> -p<パスワード> --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 <データベース名> > "<バックアップファイルパス>"

örnek

mysqldump -u backup_user -ppassword --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 test_database > "C:\Temporary\Backup.sql"

  • --default-character-set=utf8 GUI'de yedekleme yaparken belirttiğiniz karakter kodunun aynısını belirtirseniz, GUI'de yedekleme yaparken olduğu gibi olacaktır. Bu şekilde, onu GUI'ye de aktarabilirsiniz.
  • Parola alanı ile -p parola arasına boşluk koymayın.
  • Tablespace bilgilerinin çıktısını da almak istiyorsanız, --no-tablespaces kaldırın. Bu durumda, çalışan kullanıcının izinleri . PROCESS

Belirtilen konumda bir yedekleme dosyası oluşturulacaktır.

Komutla veritabanını geri yükleme (mysqldump)

mysqldump tarafından yedeklenen dosyalar SQL'de çalıştırılabilecek bir formattadır, bu nedenle tek yapmanız gereken hedef SQL'i çalıştırmaktır. Çoğu geri yüklemenin manuel olarak yapıldığını düşünüyorum, bu yüzden kök hesap olarak çalıştırırsanız sorun olmaz.

Bir komuttan çalıştırmak istiyorsanız, PowerShell yerine komut isteminde çalıştırın. Bunun nedeni, sembolün PowerShell'de < kullanılamamasıdır.

Aşağıdaki komutu çalıştırın:

mysql -u root -p<root のパスワード> <データベース名> < <バックアップした SQL のファイルパス>

örnek

mysql -u root -ppassword test_database < C:\Temporary\Backup.sql

Otomatik veritabanı yedeklemeleri

Windows için, Görev Zamanlayıcı'yı kullanmak yaygındır. İlk olarak, bir toplu iş dosyası oluşturun. Bir yarasa dosyası oluşturun, içeriği komut tarafından yedeklendiği şekilde girin ve kaydedin. Karakter kodlaması Shift-JIS ile kaydedilir. Toplu iş dosyasının konumu ve dosya adı isteğe bağlıdır.

Görev Zamanlayıcı'ya kaydolun. Başlat menüsüne sağ tıklayın ve Bilgisayar Yönetimi'ni seçin.

Soldaki menüden Bilgisayar Yönetimi > Sistem Araçları'nı > Görev Zamanlayıcı'yı > Görev Zamanlayıcı Kitaplığı'nı seçin. Sağdaki menüden "Görev Oluştur..."u seçin.

Genel sekmesini yapılandırın. Görev listesinde "Ad" görünecektir, bu nedenle anlaşılması kolay bir ad girin. Güvenlik seçeneklerinde, "Kullanıcının oturum açıp açmadığına bakılmaksızın çalıştır" seçeneğini işaretleyin.

"Tetikleyici" sekmesinde, yedeklemenin ne zaman gerçekleştirileceğini ayarlayabilirsiniz. Bu ayarı işleminize göre ayarlayın.

"İşlem" sekmesinde, az önce oluşturduğunuz toplu iş dosyasını başlatacak şekilde ayarlayın.

Her birini ayarladıktan sonra OK butonu ile onaylayın.

Belirtilen hesap altında çalışmak üzere kaydolmak için şifrenizi girin.

Bundan sonra, yedeklemenin belirtilen zamanda yürütülüp yürütülmeyeceğini kontrol edin.