Mysqldump Nedir ve Nasıl Kullanırım?

İçindekiler:

Mysqldump Nedir ve Nasıl Kullanırım?
Mysqldump Nedir ve Nasıl Kullanırım?
Anonim

Önde gelen ücretsiz olarak erişilebilen veritabanlarından biri olan MySQL, birçok web uygulaması için popüler bir seçimdir. İnternete maruz kalan uygulamanız kötü niyetli saldırılara maruz kalır. Sunucunuzun güvenliği ihlal edilmişse, en iyi ihtimalle uygulamayı yeniden yüklemeniz gerekir; en kötü ihtimalle verilerinizi kaybedebilirsiniz. Ayrıca, bir veritabanını bir sunucudan diğerine taşımanız gereken bir durumla karşılaşabilirsiniz.

mysqldump Ne İçin Kullanılır?

Mysqldump aracı, hem sunucu güvenliğinin ihlal edilmesi hem de geçiş durumları için size yardımcı olur. Temel işlevi, bir MySQL veritabanını alıp bir metin dosyası olarak dışarı atmaktır. Ancak herhangi bir metin dosyası değil; dosya bir dizi SQL ifadesidir. Bu ifadeler yürütüldüğünde, veri tabanını, dökümün yürütüldüğü andaki tam durumuna göre yeniden yapılandırır.

Bir veritabanının yedek olarak dışa aktarılmasını oluşturmak için veya veritabanını yeni bir ana bilgisayara taşırken mysqldump kullanın. Her iki durumda da, metin dosyası bir MySQL veritabanı sunucusuna geri aktarılacaktır. Veritabanını orijinal durumuna yeniden oluşturan dosyadaki tüm SQL deyimlerini yürütür. Bu kısım mysqldump komutunu kullanmaz, ancak bu yardımcı program olmadan da mümkün olmaz.

MySQL belgeleri, yedekleme yapmak için diğer yöntemleri listeler, ancak bunların dezavantajları vardır:

  • MySQL Enterprise'dan bir veritabanının kopyalanması, bu yedeklemeleri elde etmenin harika bir yoludur - Enterprise fiyat etiketini dert etmezseniz.
  • Hedefler farklı olacağından, işletim sistemleri arasında hareket ederken veritabanı veri dizinlerini kopyalamak zor olabilir.
  • Sınırlandırılmış bir metin dosyasına dışa aktarmak size içeriği verir, ancak yapıyı yeniden oluşturmanız gerekir.
  • Genellikle MySQL Workbench gibi GUI programlarından veritabanlarını yedekleyebilirsiniz. Ancak bu manuel bir işlemdir; bir toplu işe yazabileceğiniz veya ekleyebileceğiniz bir şey değil.

mysqldump Aracını kurun

Windows için, MySQL'i Windows 7'ye yükleme talimatlarımıza bakın (yükleme işlemi Windows 10 için aynıdır). macOS'ta, MySQL'i macOS 10.7'ye yüklemek için yönergelerimize bakın (yine daha eski ama yine de uygulanabilir). Ubuntu tabanlı Linux sistemlerinin kullanıcıları MySQL istemcisini ve yardımcı programlarını kurmak için aşağıdaki komutu kullanabilir:

sudo apt install mysql-client

Bir MySQL Dökümü Çıkart

Yüklendikten sonra, bir veritabanının tam yedeğini almak için mysqldump kullanın.

mysqldump -h [DB sunucunuzun adı veya IP'si] -u [DB kullanıcısının adı] -p [veritabanı adı] > db_backup.sql

İşte bu komutta kullanılan işaretlerin açıklaması:

  • - h: Bu bayrak, veritabanı ana bilgisayarıdır. Tam bir ana bilgisayar adı (örneğin, myhost.domain.com) veya bir IP adresi olabilir. Komutu MySQL sunucusuyla aynı ana bilgisayarda çalıştırıyorsanız bunu boş bırakın.
  • - u: Kullanıcı adınız.
  • - p: MySQL kurulumunu düzgün bir şekilde güvence altına aldıysanız, bağlanmak için bir şifreye ihtiyacınız olacak. Argüman içermeyen bu bayrak, komutu yürüttüğünüzde sizden bir parola ister. Bazen, örneğin bir yedekleme komut dosyasında, parolayı doğrudan bu bayrağın argümanı olarak sağlamak yararlıdır. Ancak istemde bunu yapmamalısınız, çünkü birisi bilgisayarınıza erişim sağlarsa komut geçmişinde bu şifreyi alabilir.
  • > db_backup.sql: Bu kısım mysqldump'a çıktısını bir dosyaya yönlendirmesini söyler. Normalde, komut her şeyi konsola gönderir, yani ekranda birkaç SQL ifadesi göreceksiniz. > sembolü, çıktıyı adlandırılmış metin dosyasına yönlendirir. Bu dosya yoksa otomatik olarak oluşturulur.

Bittiğinde, bir. SQL dosyanız olacak. Bu, SQL deyimlerini içeren bir metin dosyasıdır. İçeriği incelemek için herhangi bir metin düzenleyicide açabilirsiniz. İşte bu dosyaların nasıl bir araya getirildiğini gösteren bir WordPress veritabanından dışa aktarmada.

Image
Image

Dosya bölümlere ayrılmıştır. İlk bölüm, WordPress yorumları için tabloyu kurar. İkinci bölüm, bu tablolardaki içeriği yeniden oluşturur (bu örnekte, yorum kayıtları). MySQL dökümünü yeniden içe aktardığınızda, komut dosya üzerinden çalışır, ifadeleri yürütür ve veritabanını olduğu gibi yeniden oluşturur.

MySQL Döküm Dosyasını İçe Aktar

Döküm dosyasını içe aktarmadan önce, önceden oluşturulmuş bir veritabanına ve geçerli kullanıcı adı ve şifresine ihtiyacınız olacak. Ayrıca veritabanı için tüm izinlere sahip olmalısınız. GRANT iznine ihtiyacınız yok ama hepsini vermek daha kolay.

Veritabanınızdaki güvenlik rollerini değiştirmeden önce veritabanı izinleri hakkında daha fazla bilgi edinin.

Verilerinizi yeniden içe aktarmak için, mysql komutuyla MySQL sunucusuna giriş yapın. Komut istemine use [veritabanı adı] yazın ve veritabanının adını değiştirin. source [filename] girin ve daha önce aldığınız döküm dosyasının adını değiştirin.

İşiniz bittiğinde, SQL ifadelerinin yürütüldüğünü belirten bir mesaj listesi görünür. Hatalara dikkat edin, ancak doğru izinlere sahipseniz sorun olmaz.

Image
Image

İşlem tamamlandığında, orijinal veritabanının bir kopyasına sahip olacaksınız. Veritabanları arasındaki benzerliği doğrulamak için başka bir döküm gerçekleştirin ve ardından iki çıktıyı karşılaştırın. İki dosyayı karşılaştırmak için bir metin düzenleyici veya özel bir fark aracı kullanın.

Image
Image

Sağ kaydırma çubuğunun üstünde ve altında kırmızı çizgilerle gösterildiği gibi bu dosyalar arasında iki fark vardır. Birincisi, veritabanı adını içeren satırdır ve bu, dosyalar farklı adlandırıldığından farklıdır. İkincisi, döküm dosyasının zaman damgasıdır. Bu farklıdır çünkü ikinci veritabanı birinciden sonra yeniden oluşturulmuştur. Aksi takdirde, dosyalar tamamen aynıdır, yani onları oluşturan veritabanları da aynıdır.

SSS

    Mysqldump hatasını nasıl düzeltirsiniz: Kilit tabloları kullanılırken erişim reddedildi?

    Veritabanı yöneticinizden size KİLİT ayrıcalığını vermesini isteyin. Bu sorunu çözmezse, [ $ mysqldump --single-transaction gibi --single-transaction işaretini ekleyerek aynı mysqldump komutunu çalıştırmayı deneyin.] [-u kullanıcı] [-p DBNAME] > backup.sql

    mysqldump ile "where" yan tümcesi kullanabilir misin?

    Yalnızca verilen koşulu karşılayan satırları içeren bir yedekleme oluştururken WHERE yan tümcesi kullanın. Örneğin, yalnızca id sütunu 100'den büyük olan satırlardan veri atmak için "mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql". girin.

Önerilen: