2009-05-19 42 views

Trả lời

43

Tôi không chắc chắn cho dù bạn đang yêu cầu để sao lưu các thủ tục lưu trữ cũng như mọi thứ khác, hay chỉ là thủ tục được lưu trữ trên riêng của họ ...

Stored procedured trong bãi với mọi thứ khác:

mysqldump -R <dbname> #or 
mysqldump --routines <dbname> 

Chỉ cần các thủ tục lưu trữ:

mysqldump -n -t -d -R <dbname> #or 
mysqldump --no-create-db --no-create-info --no-data --routines <dbname> 

Điều đó giúp đỡ?

+1

Trong phiên bản mysqldump của tôi (mysqldump Ver 10.13 Phân phối 5.1.69, cho debian-linux-gnu (x86_64)), ít nhất, đó phải là -R, không -r. Từ doc: -R, --routines Dump được lưu trữ thường trình (chức năng và thủ tục). -r, --result-file = name Đầu ra trực tiếp vào một tập tin đã cho. Tùy chọn này nên được sử dụng trong MSDOS, vì nó ngăn không cho dòng mới '\ n' được chuyển đổi thành '\ r \ n' (nguồn cấp dữ liệu dòng trả về + dòng). – davej

+1

@davej Điểm tốt - tôi đoán tôi đã bỏ lỡ điều đó. (Tôi muốn nghĩ rằng tôi đã thử nghiệm nó, nhưng tôi đoán không ...) Cảm ơn bạn đã lưu ý. – Stobor

0

mysqldump - u dbusername (ví dụ: -uroot) -ppassword (ví dụ: -pmysql @ dbpas) --routines

sử dụng tên người dùng và mật khẩu có thể là hữu ích hơn.

0

Bạn cũng có thể đặt routines=true trong phần [mysqldump] file my.cnf của bạn (bạn có thể phải thêm phần này vì nó không phải là thường hiện diện trong một tập tin my.cnf trinh nữ) để bao gồm thói quen trong một bãi chứa bình thường.

Các vấn đề liên quan