2012-11-27 5 views
27

Có thể kết xuất cơ sở dữ liệu từ máy chủ từ xa thông qua kết nối ssh và có tệp sao lưu trên máy tính cục bộ của tôi không.mysqldump từ máy chủ từ xa

Nếu có thể đạt được điều này như thế nào?

Tôi giả định rằng nó sẽ là một số kết hợp của đầu ra đường ống từ ssh đến bãi chứa hoặc ngược lại nhưng không thể tìm ra.

+0

Tôi đã trả lời câu trả lời tương tự tại đây: http://stackoverflow.com/questions/6564882/automate-mysqldump-to-local-computer-windows/13584425#13584425 –

Trả lời

55

này sẽ đổ, nén và dòng qua ssh vào tập tin địa phương của bạn

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

thì:

mysqldump -hlocalhost > backup.sql

giả sử bạn cũng không có mysql chạy cục bộ. Nếu bạn làm bạn có thể điều chỉnh cổng để cái gì khác.

+0

Bạn có thể cung cấp ví dụ –

+1

Tôi cần điều này trong một lệnh duy nhất mặc dù thats lý do tại sao tôi nghĩ rằng sẽ có một sự kết hợp của ống –

+0

Bạn có thể giải thích lý do tại sao bạn cần điều này như là một lệnh duy nhất? –

10

Bắt đầu từ @ MichelFeldheim của giải pháp, tôi muốn sử dụng:

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

tôi đã tạo ra một script để làm cho nó dễ dàng hơn để tự động hóa các lệnh mysqldump trên máy chủ từ xa bằng câu trả lời được cung cấp bởi Michel Feldheim làm điểm xuất phát:

mysqldump-remote

Các kịch bản cho phép bạn lấy một bãi chứa cơ sở dữ liệu từ một máy chủ từ xa có hoặc không có SSH và tùy chọn sử dụng một tập tin .env chứa các biến môi trường.

Tôi định sử dụng tập lệnh để sao lưu cơ sở dữ liệu tự động. Hãy thoải mái create issues/contribute - hy vọng điều này sẽ giúp người khác!