Lệnh mysql - Sao lưu và phục hồi cơ sở dữ liệu MySQL

Bài viết này cho bạn một số ví dụ thực tế về cách thực hiện các hoạt động sao lưu khác nhau của cơ sở dữ liệu MySQL/MariaDB bằng cách sử dụng câu lệnh mysqldump và cũng sẽ xem cách khôi phục chúng bằng sự trợ giúp của mysql và mysqlimport trong Linux.

Mysqldump là một chương trình cli, nó được sử dụng để sao lưu cơ sở dữ liệu MySQL cục bộ hoặc từ xa hoặc các bộ sưu tập cơ sở dữ liệu vào một tệp duy nhất.

Chúng tôi giả định rằng bạn đã cài đặt MySQL trên hệ thống Linux với đặc quyền quản trị và chúng tôi tin rằng bạn đã có một lượng nhỏ kiến thức về MySQL.

Làm thế nào để sao lưu cơ sở dữ liệu MySQL trên Linux?

Để sao lưu cơ sở dữ liệu hoặc các cơ sở dữ liệu MySQL, cơ sở dữ liệu phải tồn tại trên máy chủ cơ sở dữ liệu và bạn phải có quyền truy cập vào nó. Định dạng của câu lệnh sẽ như sau.

# mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]

Các tham số của câu lệnh nói trên như sau.

  • [tên người dùng] : Tên người dùng MySQL hợp lệ.
  • [mật khẩu] : Mật khẩu MySQL hợp lệ cho người dùng.
  • [tên cơ sở dữ liệu] : Tên cơ sở dữ liệu hợp lệ mà bạn muốn sao lưu.
  • [tệp sao lưu.sql]: Tên tệp sao lưu bạn muốn tạo ra.

Làm thế nào để sao lưu một cơ sở dữ liệu MySQL đơn?

Để sao lưu một cơ sở dữ liệu đơn, sử dụng câu lệnh như sau. Câu lệnh sẽ sao lưu cấu trúc cơ sở dữ liệu [rsyslog] kèm theo dữ liệu vào một tệp sao lưu duy nhất được gọi là rsyslog.sql.

# mysqldump -u root -ptecmint rsyslog > rsyslog.sql

Làm thế nào để sao lưu nhiều cơ sở dữ liệu MySQL?

Nếu bạn muốn sao lưu nhiều cơ sở dữ liệu, chạy câu lệnh sau. Câu lệnh ví dụ sau đây sao lưu cấu trúc và dữ liệu của các cơ sở dữ liệu [rsyslog, syslog] vào một tệp duy nhất được gọi là rsyslog_syslog.sql.

# mysqldump -u root -ptecmint --databases rsyslog syslog > rsyslog_syslog.sql

Làm thế nào để sao lưu tất cả cơ sở dữ liệu MySQL?

Nếu bạn muốn sao lưu tất cả cơ sở dữ liệu, hãy sử dụng câu lệnh sau với tùy chọn --all-database. Câu lệnh sau đây sao lưu tất cả cơ sở dữ liệu cùng với cấu trúc và dữ liệu của chúng vào một tệp có tên là all-databases.sql.

# mysqldump -u root -ptecmint --all-databases > all-databases.sql

Làm thế nào để sao lưu chỉ Cấu trúc Cơ sở dữ liệu MySQL?

Nếu bạn chỉ muốn sao lưu cấu trúc cơ sở dữ liệu mà không có dữ liệu, hãy sử dụng tùy chọn --no-data trong câu lệnh. Câu lệnh dưới đây xuất cấu trúc cơ sở dữ liệu [rsyslog] vào một tệp có tên là rsyslog_structure.sql.

# mysqldump -u root -ptecmint -–no-data rsyslog > rsyslog_structure.sql

Làm thế nào để sao lưu chỉ Dữ liệu Cơ sở dữ liệu MySQL?

Để sao lưu dữ liệu cơ sở dữ liệu mà không có cấu trúc, hãy sử dụng tùy chọn --no-create-info với câu lệnh mysql. Câu lệnh này lấy dữ liệu của cơ sở dữ liệu [rsyslog] vào một tệp có tên là rsyslog_data.sql.

# mysqldump -u root -ptecmint --no-create-db --no-create-info rsyslog > rsyslog_data.sql

Làm thế nào để sao lưu một Bảng duy nhất trong Cơ sở dữ liệu?

Với câu lệnh dưới đây, bạn có thể sao lưu một bảng duy nhất hoặc các bảng cụ thể trong cơ sở dữ liệu của bạn. Ví dụ, câu lệnh sau chỉ sao lưu bảng wp_posts từ cơ sở dữ liệu wordpress.

# mysqldump -u root -ptecmint wordpress wp_posts > wordpress_posts.sql

Làm thế nào để sao lưu nhiều Bảng trong Cơ sở dữ liệu?

Nếu bạn muốn sao lưu nhiều hoặc các bảng cụ thể từ cơ sở dữ liệu, hãy tách từng bảng bằng dấu cách.

# mysqldump -u root -ptecmint wordpress wp_posts wp_comments > wordpress_posts_comments.sql

Làm thế nào để sao lưu Cơ sở dữ liệu MySQL từ xa

Câu lệnh dưới đây sao lưu cơ sở dữ liệu từ xa [172.16.25.126] vào máy chủ cục bộ [gallery].

# mysqldump -h 172.16.25.126 -u root -ptecmint gallery > gallery.sql

Làm thế nào để khôi phục Cơ sở dữ liệu MySQL?

Trong bài hướng dẫn trên, chúng tôi đã xem cách sao lưu cơ sở dữ liệu, bảng, cấu trúc và dữ liệu chỉ, bây giờ chúng tôi sẽ xem cách khôi phục chúng bằng cách sử dụng định dạng sau.

# # mysql -u [username] –p[password] [database_name] < [dump_file.sql]

Làm thế nào để khôi phục một Cơ sở dữ liệu MySQL duy nhất

Để khôi phục một cơ sở dữ liệu, bạn phải tạo ra một cơ sở dữ liệu trống trên máy đích và khôi phục cơ sở dữ liệu bằng câu lệnh msyql. Ví dụ, câu lệnh sau sẽ khôi phục tệp rsyslog.sql vào cơ sở dữ liệu rsyslog.

# mysql -u root -ptecmint rsyslog < rsyslog.sql

Nếu bạn muốn khôi phục một cơ sở dữ liệu đã tồn tại trên máy đích, bạn sẽ cần sử dụng câu lệnh mysqlimport.

# mysqlimport -u root -ptecmint rsyslog < rsyslog.sql

Đồng thời, bạn cũng có thể khôi phục các bảng, cấu trúc và dữ liệu của cơ sở dữ liệu. Nếu bạn thích bài viết này, hãy chia sẻ nó với bạn bè của bạn.