2011-01-20 35 views
20

tôi đã tự hỏi làm thế nào tôi có thể nhận được các tập tin sau đây,MySQL Dump Tất cả Cơ sở dữ liệu và Tạo (hoặc Tạo lại) chúng trên Nhập?

mysqldump -h server -u root -p --all-databases > all_dbs.sql 

để tự động tạo ra bất kỳ cơ sở dữ liệu chưa được tạo ra, khi nhập khẩu. Ngoài ra, nếu một cơ sở dữ liệu đã có, nó sẽ tạo lại nó (ghi đè lên cái cũ).

Điều này có khả thi không? Cảm ơn!

+3

tôi chỉ sử dụng "mysql -u root -p Garrett

+0

Xin chào Garrett, xin vui lòng gửi câu trả lời của bạn như một câu trả lời, bằng cách này những người khác với cùng một vấn đề sẽ có thể nhìn thấy. Xem [FAQ] (http://stackoverflow.com/faq). – fredley

Trả lời

36
Export: mysqldump -u root -p --all-databases > all_dbs.sql 
Import: mysql -u root -p < all_dbs.sql 
+2

chỉnh sửa nhỏ, nên đọc: Xuất: mysqldump -u root -p --all-databases> all_dbs.sql – dgm

+1

'mysqldump -u [user] -p [mật khẩu] --all-databases' ' mysql -u [user] -p [password] noisy

+0

đầu ra của mysqldump phải được chuyển hướng bằng tùy chọn -r để giữ lại các ký tự UTF8 ... mysqldump -u root -p --all-databases -r all_dbs.sql – sotn0r

7

Xuất:

mysqldump -uroot -p --all-databases > alldb.sql 

Tra cứu tài liệu cho mysqldump. Bạn có thể muốn sử dụng một số các tùy chọn nêu trong ý kiến:

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

nhập:

mysql -u root -p < alldb.sql 

I Just tìm thấy một giải pháp mới:

Tạo một kịch bản bash. Nó sao lưu từng cơ sở dữ liệu vào một tệp khác

#!/bin/bash 

USER="zend" 
PASSWORD="" 
#OUTPUT="/Users/rabino/DBs" 

#rm "$OUTPUTDIR/*gz" > /dev/null 2>&1 

databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database` 

for db in $databases; do 
    if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then 
     echo "Dumping database: $db" 
     mysqldump -u $USER -p$PASSWORD --databases $db > `date +%Y%m%d`.$db.sql 
     # gzip $OUTPUT/`date +%Y%m%d`.$db.sql 
    fi 
done 
1

không sử dụng lệnh "mysql" để xuất dữ liệu. Vui lòng sử dụng "mysqldump" để thay thế.

tôi phải quản trị một máy chủ mà chỉ tiết kiệm:

\n 

Exiting... 

sau khi thực hiện "mysql --user = username --password = passord> somefile.sql"

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