Những gì cung cấp mysqldump?

Bài viết này sẽ phân tích cho bạn làm thế nào để sao lưu và khôi phục cơ sở dữ liệu với Mysql hay MariaDB từ dòng lệnh mysqldump

Tệp sao lưu được tạo bởi mysqldump về cơ bản là 1 tệp lệnh mysql có thể được sử dụng để tạo lại bản gốc của cơ sở dữ liệu được sao lưu. Mysqldump cũng có thể tạo các tệp ở định dạng CSV và XML

Bạn cũng có thể sử dụng mysqldump để chuyển cơ sở dữ liệu Mysql của bạn sang một máy chủ Mysql khác

Nếu bạn không sao lưu cơ sở dữ liệu của mình, lỗi phần mềm hoặc lỗi ổ cứng có thể là thảm họa làm hỏng toàn bộ cơ sở dữ liệu và không thể khôi phục chúng được. Để giúp bạn tiết kiệm nhiều thời gian, tôi khuyên bạn nên thường xuyên sao lưu cơ sở dữ liệu của mình

I. Cú pháp mysqldump

Trước khi vào cách sử dụng mysqldump, hãy bắt đầu bằng cách xem lại cú pháp cơ bản

Các biểu thức của mysqldump có dạng như sau

mysqldump [options] > file.sql
  • tùy chọn - tùy chọn của mysqldump
  • tập tin. sql - file database was backup

To use myqldump, must access mysql server

II. Sao lưu cơ sở dữ liệu đơn giản

Trường hợp sử dụng biến phổ biến nhất của mysqldump là để sao lưu 1 cơ sở dữ liệu

Ví dụ. để tạo ra 1 bản sao lưu của cơ sở dữ liệu có tên là database_name bằng cách sử dụng quyền người dùng là root và lưu tệp của nó có tên là database_name. sql you must run command after

mysqldump -u root -p database_name > database_name.sql

Bạn phải nhập mật khẩu cho người dùng có quyền root tại thông báo. Sau khi xác thực mật khẩu thành công, quá trình sao lưu dữ liệu sẽ bắt đầu. Tùy thuộc vào kích thước cơ sở dữ liệu, quá trình này sẽ mất 1 khoảng thời gian và bạn phải đợi nó chạy xong

Nếu bạn đang đăng nhập với 1 người dùng khác, đồng thời có quyền sao lưu mà không cần mật khẩu, bạn có thể bỏ qua tùy chọn -u và -p

mysqldump database_name > database_name.sql

III. Sao lưu nhiều cơ sở dữ liệu

Để sao lưu nhiều cơ sở dữ liệu bằng 1 lệnh, bạn cần sử dụng tùy chọn --daatabase và theo sau đó là cơ sở dữ liệu bạn muốn sao lưu. Tên của mỗi cơ sở dữ liệu phân cách nhau bởi dấu cách

mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql

Lệnh trên sẽ tạo ra một tệp sao lưu cả cơ sở dữ liệu a và b

IV. Sao lưu tất cả các cơ sở dữ liệu trong máy chủ

Sử dụng tùy chọn --all-databases để sao lưu toàn bộ cơ sở dữ liệu của bạn

mysqldump -u root -p --all-databases > all_databases.sql

Giống với ví dụ trước, lệnh trên sẽ tạo ra một bản sao lưu duy nhất chứa tất cả các cơ sở dữ liệu có trong máy chủ của bạn

V. Sao lưu tất cả cơ sở dữ liệu vào nhiều tệp

mysqldump không cung cấp tùy chọn sao lưu tất cả cơ sở dữ liệu vào nhiều tệp nhưng bạn có thể dễ dàng thực hiện nó bằng cách sử dụng vòng lặp FOR ở trong bash

for DB in $(mysql -e 'show databases' -s --skip-column-names); do
    mysqldump $DB > "$DB.sql";
done

Lệnh trên sẽ tạo ra các tệp kết xuất khác nhau cho mỗi cơ sở dữ liệu

VI. Tạo 1 bản nén sao lưu cơ sở dữ liệu

Nếu cơ sở dữ liệu kích thước lớn, việc nén lại sẽ là 1 ý tưởng tốt để tạo ra tệp kết xuất. Để làm được điều đó, bạn chỉ cần chuyển đầu ra sang tệp gzip

mysqldump database_name | gzip > database_name.sql.gz

VII. Tạo bản sao lưu với dấu thời gian

Nếu bạn muốn giữ nhiều bản sao lưu trong cùng 1 thư mục, bạn có thể thêm ngày hiện tại để phân biệt ngày sao lưu giữa các tệp

mysqldump  database_name > database_name-$(date +%Y%m%d).sql

Lệnh trên sẽ tạo ra 1 tệp có định dạng như tệp sau. cơ sở dữ liệu_name-20180617. sql

VIII. Khôi phục lại cơ sở dữ liệu đã sao lưu

Bạn có thể khôi phục lại cơ sở dữ liệu bằng cách sử dụng mysql. Cú pháp như sau

________số 8

Trong hầu hết các trường hợp, bạn cần phải tạo cơ sở dữ liệu đã tồn tại, thì công việc trước tiên bạn cần xóa chúng

Trong ví dụ sau, lệnh đầu tiên sẽ tạo ra một cơ sở dữ liệu có tên là database_name và sau đó sẽ nhập tệp sao lưu database_name. sql to it

mysql -u root -p -e "create database database_name";
mysql -u root -p database_name < database_name.sql

IX. Khôi phục lại 1 cơ sở dữ liệu từ 1 tệp sao lưu tất cả cơ sở dữ liệu

Nếu bạn đã sao lưu tất cả cơ sở dữ liệu của mình bằng tùy chọn --all-databases và bạn muốn khôi phục lại cơ sở dữ liệu duy nhất từ ​​tệp sao lưu, bạn có thể sử dụng tùy chọn --one-database như dưới đây

mysqldump -u root -p database_name > database_name.sql
0

X. Xuất hoặc nhập cơ sở dữ liệu bằng 1 dòng lệnh

Thay vì tạo ra 1 tệp kết xuất và chúng nhập tệp đó vào một cơ sở dữ liệu khác, bạn có thể sử dụng cách sau cho nhanh

mysqldump -u root -p database_name > database_name.sql
1

Lệnh trên sẽ dẫn đầu đến máy khách mysql ở máy chủ từ xa và sẽ nhập nó vào cơ sở dữ liệu có tên là remote_database_name. Trước khi chạy câu lệnh, bạn cần đảm bảo rằng cơ sở dữ liệu đã tồn tại ở máy chủ từ xa

XI. Sao lưu tự động với cron job

Tự động hóa sao lưu cơ sở dữ liệu cũng đơn giản như một công việc định kỳ, lệnh mysqldump sẽ được chạy trong thời gian bạn chỉ định