SSH ile MySQL Veritabanı Yedeğinin Nasıl Alınacağını ve Geri Yükleneceğini anlatabilir misiniz?

Bir veritabanı yöneticisi olarak, uzaktaki bir sunucuda bulunan MySQL veritabanımızın güvenli bir şekilde yedeklenmesi ve gerektiğinde bu yedekten geri yüklenmesi gerekli olabiliyor. SSH (Secure Shell) kullanarak, MySQL veritabanı için tam bir yedek alma ve yedekten nasıl veritabanı geri yükleme işlemi yapabileceğim konusunda hangi komutları kullanmam gerektiğini veya hangi adımları izlemem gerektiğini öğrenmek istiyorum. Ayrıca, yedekleme sırasında ve geri yüklerken karşılaşabilecek potansiyel sorunlar ve bunların çözümleri hakkında bilgi almak istiyorum.

1 Beğeni

MySQL veritabanı yedeklemesi ve geri yükleme işlemi için SSH kullanarak aşağıdaki adımları izleyebilirsin:

Veritabanı Yedekleme İşlemi:

  1. Öncelikle, SSH ile uzaktaki sunucuya bağlantı yapman gerekiyor. Ancak zaten mysql sunucusuna putty ile bağlandıysanız 2. aşamaya geçebilirsiniz direkt. SSH bağlantısı için ssh kullanıcıAdı@sunucuIP komutunu kullanarak sunucuya giriş yapabilirsin. Eğer bir anahtar kullanıyorsan, -i seçeneği ile anahtarın yolunu belirtebilirsin. Örneğin:
ssh -i /path/to/private_key.pem kullanıcıAdı@sunucuIP
  1. Sunucuya giriş yaptıktan sonra, MySQL veritabanının yedekleneceği bir dizine ilerle. Örneğin, /home/kullanıcıAdı/yedekler dizinine gidebilirsin:
cd /home/kullanıcıAdı/yedekler
  1. Şimdi, MySQL veritabanının tam yedeğini almak için mysqldump komutunu kullanabilirsin. Aşağıdaki komutu kullanarak, veritabanını yedekleyebilirsin:
mysqldump -u kullanıcıAdı -p veritabanıAdı > yedekDosyası.sql

Bu komutta, kullanıcıAdı ve veritabanıAdı yerine kendi veritabanı bilgilerini kullanmalısın. yedekDosyası.sql ise yedeği kaydetmek istediğin dosyanın adıdır. Komut çalıştırıldıktan sonra, MySQL veritabanın tam yedeği yedekDosyası.sql adıyla oluşturulacaktır.

  1. Yedekleme işlemi tamamlandıktan sonra, SSH oturumunu sonlandırabilirsin:
exit

Veritabanı Geri Yükleme İşlemi:

  1. Yedekleme işlemi sırasında oluşturduğun yedekDosyası.sql dosyasını sunucuya kopyalamak için SSH bağlantısı kurmalısın.

  2. SSH bağlantısı kurduktan sonra, MySQL veritabanının yedekten geri yükleneceği bir dizine gidin. Örneğin, /home/kullanıcıAdı/yedekler dizinine gidebilirsin:

cd /home/kullanıcıAdı/yedekler
  1. Şimdi, aşağıdaki komutu kullanarak yedeğin MySQL veritabanına geri yükleyebilirsin:
mysql -u kullanıcıAdı -p veritabanıAdı < yedekDosyası.sql

Bu komutta, kullanıcıAdı ve veritabanıAdı yerine kendi veritabanı bilgilerini kullanmalısın. yedekDosyası.sql ise geri yüklemek istediğin yedeğin adıdır.

  1. Komutu çalıştırdıktan sonra, yedekten MySQL veritabanına geri yükleme işlemi başlayacak. Bu işlem tamamlandıktan sonra, veritabanındaki veriler yedeğe geri yüklenmiş olacaktır.

Potansiyel Sorunlar ve Çözümleri:

Sorun 1: SSH bağlantısında bir hata alıyorum.
Çözüm 1: Bağlantı bilgilerini ve anahtar yolunu doğru girdiğinizden emin olun. SSH uyumluluğuna sahip olduğunuzdan ve doğru IP adresine bağlanmaya çalıştığınızdan emin olun.

Sorun 2: MySQL yedeğini alırken veya geri yüklerken bir hata alıyorum.
Çözüm 2: Hatanın nedenini belirlemek için hata mesajını kontrol etmeniz önemlidir. Genellikle yanlış kullanıcı adı, yanlış veritabanı adı veya yedekte hatalı veri gibi sorunlardan kaynaklanabilir. Hata mesajına bağlı olarak, sorunu çözmek için doğru bilgileri kullanarak komutu yeniden kontrol edin.

TERİMLER:

  • SSH (Secure Shell): Ağ üzerinde güvenli bir şekilde uzak bir sunucuya erişim sağlamak için kullanılan şifreleme protokolüdür. SSH, verileri şifreleyerek ve kimlik doğrulaması sağlayarak güvenli bir bağlantı oluşturur.

Sisteminizin veri tabanı yedeğini almanız her zaman önemlidir. Ne zaman başınıza bir sorun geleceği hiç belli olmuyor. Yanlışlıkla silme durumları da olabiliyor, sisteme aşırı yük binmesinden dolayı işletim sisteminizin çökmesinden de veri kayıpları yaşanabiliyor. Kaldı ki donanım yanmalarının yada bozulmalarının konusuna hiç girmiyorum. Bu yüzden her zaman yedek almanız hayati önem taşıyor.

Mysql sunucuları ile uğraşıyorsanız yedeğinizi almanız iyi olacaktır. Ancak bazen büyük veri tabanları ile çalışmanız gerekir ki bu tabloların 1GB dan 50 GB a kadar büyüklüğü olabilir anlamına geliyor. bu durumda Web ara yüzünü kullanarak Databasenin yedeğini almanız imkansız olabiliyor. Burada SSH yazılımı ile sisteminize terminal girişi yani root girişi yaparak kısa sürede veri tabanı yedeği sunucunuza alabiliyorsunuz.

Mysql veritabanı yedek alma

mysqldump --opt -Q -u KULLANICI_ismi -p DATABASE_ismi > /yedek.sql

Bu işlemden sonra sizden veri tabanı kullanıcı şifresini isteyecek. Girdikten sonra enter yapın ve işlemin bitmesini bekleyin. Ana dizinde bir Mysql yedek dosyası oluşturulacak. İşte bu kadar kolay yedek almak.

Bazı zamanlarda bu yedeği geri yüklemeniz gerekir. Eğer dosya boyutu çok büyükse bu işlemi web ara yüzü ile yapamazsınız. Bunun içinde ssh aracılığı ile Databaseyi geri yükleyeceğiz.

Mysql veri tabanı yedeği geri yükleme

mysql -u KULLANICI_ismi -p DATABASE_ismi < /yedek.sql

yedek.sql dosyasının belirttiğiniz dizinde olması önemlidir arkadaşlar yoksa hata alırsınız.

Bu işlemler için ssh alanına bağlanmak için Putty yazılımını kullanabilirsiniz.


Mysql bütün veritabanlarını tek dosyada yedek alma

Aşağıdaki komut yardımı ile mysql programınızda bulunan bütün veritabanı ve kayıtlarını tek dosyada yedek alabilirsiniz. Ancak belirtmek isterim bütün veritabanlarını yedek aldığı için dosya boyutu fazla olabilir. #stackoverflow

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

Yada farklı komutlar ekleyerekde komutu özelleştirebilirsiniz.

mysqldump -u root -p --opt --all-databases > alldb.sql mysqldump -u root -p --all-databases --skip-lock-tables > alldb.sql

Aldığınız yedeği geri yüklemek içinde aşağıdaki komutu kullanabilirsiniz:

mysql -u root -p < alldb.sql

Normal veri tabanı yükleme komutundan tek farkı veri tabanı ismi belirtmiyoruz.