Sao lưu mysql ở đâu?

Vâng có nhiều lúc cơ sở dữ liệu quá lớn thì việc các bạn sử dụng các công cụ viết sẵn đó sẽ tốn nhiều thời gian và sẽ bị lỗi hoặc không làm được

Đến lúc này thì việc chạy bằng dòng lệnh là giải pháp tối ưu [theo mình]. Mình thường xuyên sao lưu và khôi phục những cơ sở dữ liệu lớn đến vài chục GB, và mình thấy nhiều cái chưa có giải pháp tối ưu hơn việc sử dụng lệnh

Sau đây mình hướng dẫn bạn cách sử dụng lệnh để sao lưu và phục hồi cơ sở dữ liệu MySQL

Sao lưu bằng Dòng lệnh [sử dụng mysqldump để sao lưu cơ sở dữ liệu]

Để có thể sử dụng dòng lệnh sao lưu cơ sở dữ liệu, bạn cần phải đăng nhập vào máy chủ thông qua kết nối ssh như Putty

Hoặc nếu bạn sử dụng Ubuntu, thì bạn có thể luôn sử dụng Terminal của ubuntu thông qua lệnh

ssh root@105.257.195.15 -p 22


Sử dụng cấu trúc lệnh như sau để sao lưu cơ sở dữ liệu

$ mysqldump --opt -u [uname] -p [dbname] > [backupfile.sql]


in which

[tên]. người dùng của cơ sở dữ liệu

[tên db]. Tên của cơ sở dữ liệu

[tập tin sao lưu. sql]. Tên tập tin sao lưu muốn lưu

[-opt]. Các tùy chọn mysqldump

Ví dụ. Để sao lưu cơ sở dữ liệu vznvn

$ mysqldump -u root -p vznvn > backup_vzn.sql


Bạn cũng có thể tùy chọn các bảng để sao lưu bằng cách liệt kê các bảng, các bảng cách nhau bằng khoảng trắng [dấu cách]

$ mysqldump -u root -p vznvn bang_a bang_b > backup_vzn.sql


Sao lưu Cơ sở dữ liệu MySQL và đồng thời nén lại

Nếu cơ sở dữ liệu có dung lượng lớn, bạn cần nén lại, khi đó bạn có thể sử dụng cấu trúc lệnh nén cùng gzip

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

________số 8

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 --opt -u [uname] -p [dbname] > [backupfile.sql]
0

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 --opt -u [uname] -p [dbname] > [backupfile.sql]
1

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

$ mysqldump --opt -u [uname] -p [dbname] > [backupfile.sql]
2

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

$ mysqldump --opt -u [uname] -p [dbname] > [backupfile.sql]
3

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

Chủ Đề