MySQL - Xuất Cơ Sở Dữ Liệu: Hướng Dẫn Toàn Diện Cho Người Mới Bắt Đầu

Xin chào các bạn đam mê cơ sở dữ liệu! Hôm nay, chúng ta sẽ bắt đầu một chuyến hành trình thú vị vào thế giới xuất cơ sở dữ liệu MySQL. Đừng lo lắng nếu bạn là người mới - tôi đã dạy khoa học máy tính trong nhiều năm, và tôi hứa sẽ làm cho điều này dễ dàng và thú vị nhất có thể. Hãy tưởng tượng việc xuất cơ sở dữ liệu như việc đóng vali kỹ thuật số cho một chuyến đi. Hãy cùng bắt đầu!

MySQL - Database Export

什么是数据库导出?

Trước khi chúng ta đi vào chi tiết, hãy hiểu什么是数据库导出. Hãy tưởng tượng bạn có một két bảo vệ (cơ sở dữ liệu của bạn) đầy những viên ngọc quý giá (dữ liệu của bạn). Việc xuất cơ sở dữ liệu giống như tạo một bản sao hoàn hảo của tất cả những viên ngọc đó, mà bạn có thể lưu trữ an toàn hoặc chuyển đến một két bảo vệ khác. Đây là cách để bạn sao lưu dữ liệu hoặc di chuyển nó sang hệ thống khác.

Xuất cơ sở dữ liệu bằng mysqldump

Bây giờ, hãy nói về công cụ chính của chúng ta cho cuộc phiêu lưu này: mysqldump. Nó giống như một枝魔法 trong thế giới MySQL giúp chúng ta xuất cơ sở dữ liệu một cách dễ dàng.

Lệnh cơ bản của mysqldump

Dưới đây là cấu trúc cơ bản của lệnh mysqldump:

mysqldump -u [tên_tài_khoản] -p [tên_cơ_sở_dữ_liệu] > [tên_tệp].sql

Hãy phân tích nó:

  • -u [tên_tài_khoản]: Đây là nơi bạn đặt tên tài khoản MySQL của mình
  • -p: Điều này cho MySQL biết bạn muốn nhập mật khẩu
  • [tên_cơ_sở_dữ_liệu]: Tên của cơ sở dữ liệu bạn muốn xuất
  • > [tên_tệp].sql: Phần này tạo một tệp mới với tên bạn chọn và lưu xuất vào đó

Ví dụ, nếu tôi muốn xuất cơ sở dữ liệu có tên "my_school" và lưu nó dưới tên "school_backup.sql", tôi sẽ sử dụng:

mysqldump -u root -p my_school > school_backup.sql

Khi bạn chạy lệnh này, MySQL sẽ yêu cầu bạn nhập mật khẩu. Nhập nó, và voilà! Quy trình xuất sẽ bắt đầu.

Xuất dữ liệu và cấu trúc

Mặc định, mysqldump xuất cả cấu trúc (bản đồ của cơ sở dữ liệu bạn) và dữ liệu. Nó giống như việc đóng vali cả vali và nội dung của nó. Tuy nhiên, đôi khi bạn có thể chỉ muốn một trong hai.

Để xuất chỉ cấu trúc:

mysqldump -u root -p --no-data my_school > school_structure.sql

Để xuất chỉ dữ liệu:

mysqldump -u root -p --no-create-info my_school > school_data.sql

Xuất chỉ các bảng cụ thể trong cơ sở dữ liệu

Đôi khi, bạn không cần phải đóng toàn bộ vali. Có thể bạn chỉ cần một số món đồ. Trong thuật ngữ cơ sở dữ liệu, điều này có nghĩa là xuất các bảng cụ thể.

Xuất nhiều bảng

Để xuất các bảng cụ thể, bạn liệt kê chúng sau tên cơ sở dữ liệu:

mysqldump -u root -p my_school students teachers > school_partial.sql

Lệnh này xuất chỉ các bảng 'students' và 'teachers' từ cơ sở dữ liệu 'my_school'.

Sử dụng tùy chọn --tables

Đối với sự rõ ràng, đặc biệt là khi xử lý nhiều bảng, bạn có thể sử dụng tùy chọn --tables:

mysqldump -u root -p my_school --tables students teachers grades > school_selected.sql

Tùy chọn này explicitly tells mysqldump rằng những gì tiếp theo là tên các bảng.

Xuất tất cả các cơ sở dữ liệu trên máy chủ

Bây giờ, giả sử bạn muốn đóng tất cả vali của mình? Tất cả, nếu bạn sẽ. Đó là khi việc xuất tất cả các cơ sở dữ liệu trở nên hữu ích.

Sử dụng tùy chọn --all-databases

Để xuất tất cả các cơ sở dữ liệu trên máy chủ MySQL của bạn:

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

Lệnh này tạo một tệp duy nhất chứa tất cả các cơ sở dữ liệu của bạn. Nó giống như việc đóng toàn bộ tủ quần áo của bạn!

Loại trừ các cơ sở dữ liệu cụ thể

Đôi khi, bạn muốn xuất gần như tất cả, nhưng không phải tất cả. Bạn có thể loại trừ các cơ sở dữ liệu cụ thể:

mysqldump -u root -p --all-databases --ignore-table=mysql.user > almost_all_databases.sql

Lệnh này xuất tất cả các cơ sở dữ liệu ngoại trừ bảng 'user' trong cơ sở dữ liệu 'mysql'.

Các thực hành tốt và lời khuyên

  1. Luôn sử dụng tùy chọn -p: Điều này đảm bảo mật khẩu của bạn không hiển thị trong lịch sử lệnh dòng.

  2. Nén các xuất lớn: Đối với cơ sở dữ liệu lớn, hãy sử dụng nén:

    mysqldump -u root -p my_school | gzip > school_backup.sql.gz
  3. Lên lịch xuất định kỳ: Thiết lập một cron job để chạy xuất định kỳ. Nó giống như việc có một người giúp việc kỹ thuật số!

  4. Phiên bản hóa các xuất: Bao gồm ngày trong tên tệp:

    mysqldump -u root -p my_school > school_backup_$(date +%Y%m%d).sql

Các tùy chọn mysqldump phổ biến

Dưới đây là bảng các tùy chọn mysqldump thường được sử dụng:

Tùy chọn Mô tả
--add-drop-table Thêm lệnh DROP TABLE trước mỗi lệnh CREATE TABLE
--no-data Xuất chỉ cấu trúc cơ sở dữ liệu, không phải nội dung
--no-create-info Xuất chỉ dữ liệu, không phải lệnh CREATE TABLE
--routines Bao gồm các thủ tục lưu trữ (procedures và functions) trong xuất
--triggers Bao gồm các trigger trong xuất
--where Xuất chỉ các hàng được chọn bởi điều kiện WHERE
--single-transaction Tạo một bản sao nhất quán bằng cách xuất tất cả các bảng trong một giao dịch

Nhớ rằng, thực hành làm nên hoàn hảo! Đừng ngần ngại thử nghiệm với các lệnh này (trên cơ sở dữ liệu thử nghiệm, tất nhiên). Mỗi lần bạn xuất một cơ sở dữ liệu, bạn không chỉ sao lưu dữ liệu - bạn đang tinh chỉnh một kỹ năng quan trọng trong quản lý cơ sở dữ liệu.

Khi chúng ta kết thúc, hãy nhớ rằng việc xuất cơ sở dữ liệu là mạng an toàn kỹ thuật số của bạn. Nó bảo vệ dữ liệu quý giá của bạn và cho bạn tự do thử nghiệm và phát triển. Vậy hãy bắt đầu xuất dữ liệu, và chúc may mắn để cơ sở dữ liệu của bạn luôn an toàn và sound!

Credits: Image by storyset