2010-02-19 15 views

Trả lời

49

Khi bạn đã tạo một số tập tin (nói db-dump.sql) với mysqldump, bạn có thể nhập nó vào cơ sở dữ liệu khác của bạn với mysql lệnh:

mysql --user=XXX --password=XXX --host=YOUR_HOST DATABASE_NAME < db-dump.sql 


Và, nếu bạn không muốn mật khẩu để xuất hiện trong một lệnh, bạn có thể sử dụng:

mysql --user=XXX -p --host=YOUR_HOST DATABASE_NAME < db-dump.sql 


là một sidenote, nếu bạn muốn sao chép một DB với nhau, bạn không cần phải sử dụng một tập tin, và có thể chỉ trực tiếp ống đầu ra của mysqldump-mysql:

mysqldump --user=XXX --password=XXX --host=SOURCE_HOST SOURCE_DB | mysql --user=XXX --password=XXX --host=DESTINATION_HOST DESTINATION_DB 

(Cần thậm chí nhanh hơn, vì bạn không sử dụng tệp tạm thời nằm trên đĩa)

+3

Vâng, điều đó giải thích tại sao mysqlimport không hoạt động. –

+0

tốt hơn nhiều với đường ống. thanks – barbolo

+0

@Pascal MARTIN Tôi đã cố gắng làm điều tương tự và không thành công. Đây là chủ đề của tôi giải thích vấn đề: http://dba.stackexchange.com/questions/160879/importing-sql-file-in-mysql-no-errors?noredirect=1#comment309278_160879 – John

12

Tôi làm điều này thường xuyên:

mysqldump -u username -p databasename > dump.sql 

Để tải:

mysql -u username -p targetdatabasename < dump.sql 

Chuyển -p chỉ thị các cơ sở dữ liệu để nhắc bạn nhập mật khẩu cho người dùng username khi ra mắt lệnh.

Câu hỏi của bạn có thể trùng lặp.

6

Bạn chỉ có thể sử dụng 'nguồn' từ bên trong khách hàng mysql:

source dumpfile.sql 

Hoặc cung cấp trực tiếp từ dòng lệnh:

mysql -u user -p password database < source dumpfile.sql 

này được vì kết quả của mysqldump chỉ là một tập tin SQL có thể chạy qua mysql như bình thường.