MySQL'in çıktısını scp'ye yönlendir


13

Yıllar önce bu şık hileyi yapan bir linux pro ile çalıştım. Bir mysqldump yapabilir ancak çıktıyı diske yazmak yerine bir scp / ssh bağlantısına yönlendirebilir . Bu sessiz çalıştığım yerde biraz kullandık ama artık bunu nasıl yapacağımı hatırlayamıyorum.

Şimdi sunucumdaki sabit sürücümün son ayaklarda olduğu ve yoğun amaçlar için kalıcı olarak salt okunur olarak monte edildiği sorunla karşı karşıyayım.

Veritabanlarımı yeni bir sunucuya yedekleyebilmek için bu komut satırı hilesinden yararlanmayı umuyordum, çünkü dökümü yerel diske aktarmak ve aktarmak açıkça söz konusu değil.

Bu aslında küçük bir numara olabilir mi? Varsa sözdizimi nedir?

Ben beri ben sadece dökümü yapmak için mysql bağlanamıyorum deneyim ben salt okunur dosya sistemi sorunu nedeniyle fark ettik. Ancak geri bildiriminiz harikaydı ve umarım gelecekte bir başkası için kullanışlıdır


1
"niyetler ve amaçlar"
Ignacio Vazquez-Abrams

Yanıtlar:


11

mysqldump dbname | ssh root@remoteserver.com "mysql -D dbname"

işe yaramalı :-)

Sistemler arasında anahtarlar ayarlayın, böylece bir giriş / geçişe gerek kalmadan yapabilirsiniz :-)


Bu gerçekten şık olanıdır, dökümü doğrudan uzak sunucudaki mysql'ye borulamak, aslında veritabanını klonlamak bir komuttur. Doğrumuyum?
xzyfer

1
Eğer aldım ;-) tabii ki her zaman sadece sadece bir dosyaya itebilirsiniz ancak ben sadece bir yapılandırma dosyalarında bir ip üzerinden değiştirerek gerçek zamanlı olarak :-) bir yedek rulo için izin verir gibi dökümlerini seviyorum ... BÜYÜK fayda. Bunu her zaman linode işimizde yapıyoruz
Glenn Kelley

Burada bazı boru tamponlama sorunları olabilir gibi hissediyorum?
Phil Hollenback

10
mysqldump ... | ssh ... "cat > out.dmp"

Bu benim için harika çalıştı. Mac OS X dizüstü bilgisayarımda genel anahtar kimlik doğrulaması ayarladım ve mysqldump -p <dbname> | ssh <user>@<ip_address> "cat > <filename>.sql" tam olarak ihtiyacım olanı çalıştırdım .
harperville

2

@ GlennKelley'in cevabını seviyorum, ancak aşağıdakilere dikkat çekmek istedim:

450GB'lık bir veritabanımız vardı, ancak ana bilgisayarda yalnızca 500GB sağlandı. Yerel olarak ihracat yapamadık, bu yüzden uzaktan ihraç ettik. Çıktıyı doğruladık ve boru tamponlama sorunları nedeniyle çıktının bozuk olduğu yüzlerce örnek vardı.

Buradaki en iyi çözüm, dökümünüzün bitmesini istediğiniz hedef ana bilgisayardan çalıştırmak, mysqldumpancak -hana bilgisayar seçeneğini kullanmaktır . Ana makineyi MySQL sunucusuna yönlendirin ve bir >.

mysqldump -u root -p -h 10.1.1.199 --all-databases ...<more options>... > dump.sql
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.