2012-11-27 22 views
27

Uzak bir ana bilgisayardan bir ssh bağlantısı aracılığıyla bir veritabanını dökmek ve yerel bilgisayarımdaki yedekleme dosyasına sahip olmak mümkün mü?mysqldump

Öyleyse nasıl yapılabilir?

Ssh'den döküntüye giden boru çıkışının bir kombinasyonu olacak veya bunun tersini anlayamayacağım. Sonra

+0

Burada benzer cevaba yanıt vermiştir: http://stackoverflow.com/questions/6564882/automate-mysqldump-to-local-computer-windows/13584425#13584425 –

cevap

55

Bu sıkıştırmak ve @ MichelFeldheim çözümüyle başlayarak yerel dosyaya

ssh -l user remoteserver "mysqldump -mysqldumpoptions database | gzip -3 -c" > /localpath/localfile.sql.gz 
3

ssh -f [email protected] -L 3306:server.com:3306 -N

:

mysqldump -hlocalhost > backup.sql

mysql yerel olarak çalışan yok da sizi varsayarak. Eğer yaparsanız portu başka bir şeye ayarlayabilirsiniz.

+0

Eğer bir örnek –

+1

sağlayabilir Ben buna ihtiyaç duyarlar tek komut buydu ama neden boruların bir araya geleceğini düşündüm –

+0

Neden buna tek bir komut olarak ihtiyacınız olduğunu açıklayabilir misiniz? –

10

içine ssh üzerinden akışı, dökümü olurdu, ben kullanırım:

$ ssh [email protected] "mysqldump -u user -p database | gzip -c" | gunzip > db.sql 
0

bunu yapmak için bir script oluşturduk Michel Feldheim tarafından sağlanan yanıtı kullanarak, uzak ana bilgisayarlarda mysqldump komutlarını otomatikleştirmek daha kolay:

mysqldump-remote

komut isteğe bağlı ortam değişkenleri içeren bir .env dosyasını kullanarak veya SSH olmadan ve uzak ana bilgisayardan bir veritabanı dökümü almasına imkan tanır.

Otomatik veritabanı yedeklemeleri için komut dosyasını kullanmayı planlıyorum. create issues/contribute'dan çekinmeyin - bu da başkalarına da yardımcı olur!

İlgili konular