Sao lưu và quản lý cơ sở dữ liệu MySQL từ dòng lệnh
Cơ sở dữ liệu MySQL đóng một phần không thể thiếu trong nhiều hệ thống máy tính, đặc biệt là khi nói đến dịch vụ lưu trữ web và dịch vụ internet. Với tất cả những dữ liệu có giá trị đó được giao cho cơ sở dữ liệu, điều cần thiết là tạo các bản sao lưu, và điều quan trọng là phải biết cách quản trị máy chủ cơ sở dữ liệu. MySQL bao gồm hai công cụ mạnh mẽ cho các tác vụ này: “mysqldump” và “mysqladmin.” Như tên gọi của chúng, cái đầu tiên là để sao lưu và cái kia là dành cho quản trị. Nắm vững hai lệnh này là tối quan trọng nếu bạn muốn trở thành quản trị viên MySQL có thẩm quyền.
Sao lưu
Lệnh mysqldump
tạo một tệp các câu lệnh SQL khi chạy, sẽ tạo lại các bảng và dữ liệu giống nhau trong cơ sở dữ liệu. Nó có thể được sử dụng như một phương thức sao lưu hoặc là một cách dễ dàng để sao chép cơ sở dữ liệu từ một máy chủ này sang máy chủ khác. Nó cũng có thể tạo đầu ra dưới dạng giá trị được phân cách bằng dấu phẩy (CSV) hoặc thậm chí trong XML. Vì đầu ra kết quả là một tệp văn bản của câu lệnh SQL, quản trị viên có thể linh hoạt xem và thay đổi tệp kết xuất.
Để kết xuất một bảng trong một cơ sở dữ liệu, sử dụng mysqldump như sau:
mysqldump -u root -p testdb tablename
Trong đó “testdb” là tên của cơ sở dữ liệu và “tablename” là tên của bảng bạn muốn đổ. Tùy chọn “-u” chỉ định người dùng MySQL nào sử dụng trong quá trình đổ và “-p” báo mysqldump nhận mật khẩu tương tác (nghĩa là bạn sẽ cần nhập mật khẩu khi được nhắc). Người dùng cần phải có quyền truy cập đọc vào cơ sở dữ liệu đang được bán phá giá (về mặt kỹ thuật, người dùng cần các đặc quyền SELECT, SHOW VIEW, TRIGGER và LOCK TABLES). Người dùng "root" thường được cấu hình (cùng với mật khẩu) trong khi cài đặt máy chủ MySQL.
Đầu ra sẽ được gửi trực tiếp đến bàn điều khiển. Để gửi đầu ra đến một tệp và để chỉ định mật khẩu trên dòng lệnh (hữu ích cho các tập lệnh sao lưu), hãy sử dụng:
mysqldump -u root --password = 'bí mật' testdb tablename> testdb_table_backup.sql
Trường hợp "bí mật" là mật khẩu cho người dùng root, và tablename là tên của bảng bạn muốn sao lưu. Bạn nên thay thế “_table_” trong tên tệp bằng tên bảng thực. Tệp kết quả “testdb_table_backup.sql” sẽ chứa tất cả các câu lệnh SQL cần thiết để tạo lại bảng.
Bạn có thể cung cấp nhiều hơn một tham số bảng để sao lưu một số bảng, hoặc nếu bạn bỏ qua nó hoàn toàn, thì toàn bộ cơ sở dữ liệu sẽ được bán phá giá. Ví dụ:
mysqldump -u root --password = 'bí mật' testdb> testdb_backup.sql
Tệp kết quả “testdb_backup.sql” sẽ chứa một bãi chứa tất cả các bảng trong cơ sở dữ liệu.
Để kết xuất nhiều hơn một cơ sở dữ liệu, bạn cần sử dụng tùy chọn --databases
. Ví dụ:
mysqldump -u root --password = 'secret' --databases testdb testdb2> testbd_testdb2_backup.sql
Để sao lưu tất cả các bảng từ tất cả các cơ sở dữ liệu trên máy chủ MySQL, hãy sử dụng tùy chọn “ --all-databases
”:
mysqldump -u root --password = 'bí mật' - tất cả cơ sở dữ liệu> all_dbs.sql
quản trị viên
Công cụ mysqladmin được sử dụng để thực hiện các tác vụ quản trị bao gồm kiểm tra cấu hình của máy chủ và trạng thái hiện tại, và tạo và thả cơ sở dữ liệu, vv Để tạo cơ sở dữ liệu có tên là “testdb”:
mysqladmin -u root -p tạo testdb
Các tùy chọn “-u” và “-p” hoạt động giống như với lệnh mysqldump.
Để xóa một cơ sở dữ liệu cùng với tất cả các bảng của nó, sử dụng lệnh con "drop":
mysqladmin -u root -p drop testdb
Sau khi bạn xác nhận việc xóa cơ sở dữ liệu, nó, cùng với tất cả các bảng của nó, sẽ bị xóa khỏi máy chủ.
Lệnh mysqadmin cũng có thể lấy các số liệu thống kê khác nhau từ máy chủ MySQL. Hãy thử các lệnh phụ "trạng thái" và "trạng thái mở rộng". Yêu cầu trạng thái đơn giản nhất là lệnh “ping” để kiểm tra xem máy chủ có còn hoạt động hay không. Đây là một ví dụ về cách sử dụng nó:
mysqladmin -u root --password = ping 'bí mật'
Bạn có thể lấy thông tin chi tiết về lệnh mysqldump từ trang tài liệu MySQL Chương trình sao lưu cơ sở dữ liệu, và tương tự như vậy cho lệnh mysqladmin từ máy khách để quản trị trang máy chủ MySQL.
Nếu bạn có bất kỳ câu hỏi nào liên quan đến các ví dụ nêu trên, vui lòng hỏi trong phần bình luận bên dưới.