mysqldump -u [username] -p [database] > dump.sql
Nếu cơ sở dữ liệu nằm trên một máy chủ từ xa, hãy đăng nhập vào hệ thống đó bằng cách sử dụng ssh hoặc sử dụng -h and -P options to provide host and port respectively.
mysqldump -P [port] -h [host] -u [username] -p [database] > dump.sql
Có nhiều tùy chọn khác nhau có sẵn cho lệnh này, hãy xem qua các tùy chọn chính theo trường hợp sử dụng
A] Sao lưu cơ sở dữ liệu cụ thể
mysqldump -u [username] -p [database] > dump.sql
Lệnh này kết xuất cơ sở dữ liệu được chỉ định vào tệp
Bạn có thể chỉ định nhiều cơ sở dữ liệu cho kết xuất bằng lệnh sau
mysqldump -u [username] -p --databases [database1] [database2] > dump.sql
Bạn có thể sử dụng tùy chọn –all-databases để sao lưu tất cả cơ sở dữ liệu trên phiên bản MySQL
mysqldump -u [username] -p --all-databases > dump.sql
B] Sao lưu Các bảng cụ thể
Các lệnh trên kết xuất tất cả các bảng trong cơ sở dữ liệu được chỉ định, nếu bạn cần sao lưu một số bảng cụ thể, bạn có thể sử dụng lệnh sau
mysqldump -u [username] -p [database] [table1] [table2] > dump.sql
C] Truy vấn tùy chỉnh
Nếu bạn muốn sao lưu dữ liệu bằng một số truy vấn tùy chỉnh, bạn sẽ cần sử dụng tùy chọn where do mysqldump cung cấp.
mysqldump -u [username] -p [database] [table1] --where="WHERE CLAUSE" > dump.sql
Example: mysqldump -u root -p testdb table1 --where="mycolumn = myvalue" > dump.sql
Lưu ý .
- Theo mặc định, lệnh mysqldump bao gồm các câu lệnh DROP TABLE và CREATE TABLE trong kết xuất đã tạo. Do đó, nếu bạn đang sử dụng sao lưu gia tăng hoặc bạn đặc biệt muốn khôi phục dữ liệu mà không xóa dữ liệu trước đó, hãy đảm bảo rằng bạn sử dụng tùy chọn –no-create-info trong khi tạo kết xuất
mysqldump -u [username] -p [database] --no-create-info > dump.sql
- Nếu bạn chỉ cần sao chép lược đồ chứ không phải dữ liệu, bạn có thể sử dụng tùy chọn –no-data trong khi tạo kết xuất
2] Sao chép kết xuất cơ sở dữ liệu trên máy chủ đích
Khi bạn đã tạo kết xuất theo thông số kỹ thuật của mình, bước tiếp theo là chuyển tệp kết xuất dữ liệu sang máy chủ đích. Bạn sẽ phải sử dụng lệnh scp cho điều đó
Scp -P [port] [dump_file].sql [username]@[servername]:[path on destination]
ví dụ
mysqldump -P [port] -h [host] -u [username] -p [database] > dump.sql
03] Khôi phục kết xuất
Bước cuối cùng là khôi phục dữ liệu trên máy chủ đích. Lệnh MySQL trực tiếp cung cấp cách khôi phục để kết xuất dữ liệu vào MySQL
mysqldump -P [port] -h [host] -u [username] -p [database] > dump.sql
1Thí dụ
mysqldump -P [port] -h [host] -u [username] -p [database] > dump.sql
2Nếu kết xuất của bạn bao gồm nhiều cơ sở dữ liệu, không chỉ định cơ sở dữ liệu trong lệnh ở trên.
mysqldump -P [port] -h [host] -u [username] -p [database] > dump.sql
3Sự kết luận
Làm theo các bước nêu trên, bạn có thể di chuyển cơ sở dữ liệu MySQL giữa hai máy chủ một cách dễ dàng nhưng có thể khá cồng kềnh nếu đây là tác vụ định kỳ. Một giải pháp tất cả trong một như Hevo sẽ giải quyết vấn đề này một cách dễ dàng và giúp quản lý tất cả các đường dẫn dữ liệu của bạn một cách tinh tế và có khả năng chịu lỗi.
Hevo sẽ tự động lập danh mục tất cả các lược đồ bảng của bạn và sẽ thực hiện tất cả các chuyển đổi cần thiết để di chuyển Cơ sở dữ liệu MySQL giữa các phiên bản MySQL này. Hevo sẽ tìm nạp dữ liệu từ máy chủ MySQL nguồn của bạn theo kiểu gia tăng và khôi phục dữ liệu đó một cách liền mạch vào phiên bản MySQL đích. Hevo cũng sẽ thông báo cho bạn nếu có bất kỳ thay đổi lược đồ hoặc lỗi mạng nào qua email và Slack. Tất cả những điều này có thể đạt được từ Hevo UI, không cần quản lý bất kỳ máy chủ hoặc công việc định kỳ nào