Sao lưu và khôi phục cơ sở dữ liệu MySQL (Phiên bản Windows)

Trang Cập Nhật :
Ngày tạo trang :

Môi trường hoạt động

MySQL
  • Phiên bản cộng đồng MySQL 8.0
Windows
  • cửa sổ 11

Điều kiện tiên quyết

MySQL
  • MySQL 8,0
Windows
  • cửa sổ 11
  • cửa sổ 10
Máy chủ Windows
  • Máy chủ Windows 2022
  • Máy chủ Windows 2019
  • Máy chủ Windows 2016
  • Máy chủ Windows 2012 R2

Điều kiện tiên quyết

  • Cơ sở dữ liệu cho MySQL được cài đặt.
  • Cơ sở dữ liệu được sao lưu đã tồn tại.
  • Bạn đã thiết lập các biến môi trường để bạn có thể chạy mysql từ dấu nhắc lệnh.

Các loại sao lưu là gì?

Mặc dù không được thảo luận chi tiết ở đây, MySQL có các loại sao lưu sau:

sao
LệnhlưuKiểu dữ liệu sao lưuNhận xét
Mysqldump Sao lưu logic Một phương pháp sao lưu lâu đời. GUI cũng sử dụng điều này
Mysqlpump Sao lưu logic Phiên bản cải tiến của mysqldump
MySQL Shell Instance Dump Utility và Dump Loading Utility Sao lưu logic Bản sao lưu logic gần đây nhất tại thời điểm này
Percona XtraSao lưu Sao lưu vật lý Hỗ trợ của bên thứ ba để sao lưu vật lý
PLUGIN NHÂN BẢN Sao lưu vật lý Sao lưu vật lý chính thức của MySQL. Tuy nhiên, bạn cần thêm một trình cắm.

Sao lưu cơ sở dữ liệu bằng GUI (MySQL Workbench)

Nếu bạn muốn hoạt động an toàn trong GUI mà không cần sử dụng lệnh, bạn có thể sao lưu bằng MySQL Workbench. Loại sao lưu được thực hiện bởi MySQL Workbench sẽ là "mysqldump".

Khởi động MySQL Workbench.

Chọn kết nối có chứa cơ sở dữ liệu bạn muốn sao lưu.

Với cơ sở dữ liệu cần sao lưu, hãy chọn tab Quản trị từ Bộ dẫn hướng ở bên trái, sau đó chọn Xuất Dữ liệu.

Màn hình Xuất dữ liệu mở ra. Màn hình rộng hợp lý, vì vậy hãy mở rộng cửa sổ cho đến khi bạn có thể thấy nút "Bắt đầu xuất" ở dưới cùng bên phải.

Trước tiên, chọn cơ sở dữ liệu mà bạn muốn sao lưu. Bạn cũng có thể chọn nhiều hơn một.

Trong "Đối tượng để xuất", bạn cũng có thể chọn sao lưu các thủ tục và trình kích hoạt. Trường này là tùy chọn.

Trong "Tùy chọn xuất", bạn có thể chọn hai tùy chọn sau.

Mô tả loại
Xuất sang thư mục dự án kết xuất Xuất ra một thư mục được chỉ định dưới dạng bảng hoặc tệp thủ tục.
Xuất sang tệp độc lập Nhúng mọi thứ vào một tệp và đầu ra duy nhất.

Không quan trọng bạn xuất ra theo cách nào. Lựa chọn trên rất dễ xóa nếu bạn chỉ muốn khôi phục một bảng cụ thể. Lựa chọn bên dưới xuất ra một tệp duy nhất, giúp di chuyển và quản lý tệp dưới dạng đơn vị cơ sở dữ liệu dễ dàng hơn. Trong trường hợp này, tôi đã chọn như sau.

Sau khi cài đặt cài đặt, hãy nhấp vào nút "Bắt đầu xuất" ở góc dưới bên phải để bắt đầu xuất.

Quá trình xuất bắt đầu và hoàn tất.

Nếu bạn xuất nó dưới dạng một tệp duy nhất, nó sẽ trông như thế này:

Nếu bạn xuất sang một thư mục, nó sẽ trông như thế này:

Khôi phục cơ sở dữ liệu bằng GUI (MySQL Workbench)

Mở MySQL Workbench, chọn một kết nối, chọn tab Quản trị từ Bộ điều hướng ở bên trái và chọn Nhập/Khôi phục Dữ liệu. Như nó nói "Nhập / Khôi phục", bạn có thể tạo cơ sở dữ liệu mới từ tệp đã xuất hoặc ghi đè lên cơ sở dữ liệu gốc.

Mở rộng cửa sổ cho đến khi bạn thấy nút "Bắt đầu nhập" ở góc dưới bên phải.

Chọn "Tùy chọn nhập" theo định dạng tệp đã xuất. Vì lần này tôi xuất dưới dạng một tệp duy nhất, tôi đã chọn "Nhập từ tệp độc lập" bên dưới và chỉ định tệp đã xuất.

Chọn lược đồ (cơ sở dữ liệu) mà bạn muốn khôi phục. Bạn có thể khôi phục vào cơ sở dữ liệu hiện có hoặc khôi phục nó dưới dạng cơ sở dữ liệu mới từ nút "Mới" ở bên phải.

Sau khi chỉ định các thông số kỹ thuật, hãy nhấp vào nút "Bắt đầu nhập" ở dưới cùng bên phải để bắt đầu khôi phục.

Sau khi quá trình khôi phục hoàn tất, hãy đảm bảo rằng dữ liệu của bạn đã trở lại.

Tạo tài khoản để sao lưu cơ sở dữ liệu bằng lệnh

Không có vấn đề gì nếu bạn thực hiện một lệnh duy nhất và sao lưu nó, nhưng ví dụ: nếu bạn chuẩn bị lệnh dưới dạng tệp trước và thực thi nó, bạn cần viết mật khẩu bằng văn bản thuần túy, vì vậy sẽ an toàn hơn khi tạo một tài khoản riêng để thực thi sao lưu.

Một số quyền cần thiết để sao lưu có thể tăng hoặc giảm tùy thuộc vào thông tin được yêu cầu.

  • SỰ KIỆN
  • KHÓA BÀN
  • LỰA
  • HIỂN THỊ DẠNG XEM

Nếu bạn tạo nó bằng một lệnh, nó sẽ trông như thế này. Sử dụng công cụ dòng lệnh MySQL.

create user '<ユーザー名>'@'<ホスト名>' identified by '<パスワード>';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON <データベース名>.* TO '<ユーザー名>'@'<ホスト名>';
flush privileges;

ví dụ

create user 'backup_user'@'localhost' identified by 'password';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON test_database.* TO 'backup_user'@'localhost';
flush privileges;

Quyền thư mục cho đích sao lưu

Quyền của thư mục lưu tệp sao lưu phải được đặt giống như quyền thực hiện lệnh. Nếu bạn chạy lệnh với đặc quyền Quản trị viên, bạn không cần đặt bất kỳ quyền bổ sung nào trên thư mục.

Sao lưu cơ sở dữ liệu bằng lệnh (mysqldump)

Có một số bản sao lưu bằng lệnh, nhưng lần này chúng tôi sẽ sao lưu bằng "mysqldump", đã được sử dụng trong một thời gian dài và ổn định.

Nhấp chuột phải vào menu Start để khởi chạy Terminal (Command Prompt). Lưu ý rằng nó không phải là "MySQL 8.0 Command Line Client".

Bạn có thể sao lưu nó bằng lệnh sau:

mysqldump -u <ユーザー名> -p<パスワード> --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 <データベース名> > "<バックアップファイルパス>"

ví dụ

mysqldump -u backup_user -ppassword --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 test_database > "C:\Temporary\Backup.sql"

  • --default-character-set=utf8 Nếu bạn chỉ định mã ký tự giống như khi sao lưu trong GUI, nó sẽ giống như khi sao lưu trong GUI. Bằng cách này, bạn cũng có thể nhập nó vào GUI.
  • Không bao gồm khoảng trắng giữa trường mật khẩu và -p mật khẩu.
  • Nếu bạn cũng muốn xuất thông tin không gian bảng, --no-tablespaces hãy loại bỏ . Trong trường hợp đó, quyền của người dùng đang chạy phải là . PROCESS

Một tệp sao lưu sẽ được tạo ở vị trí được chỉ định.

Khôi phục cơ sở dữ liệu bằng lệnh (mysqldump)

Các tệp được sao lưu bởi mysqldump ở định dạng có thể được thực thi trong SQL, vì vậy tất cả những gì bạn phải làm là thực thi SQL đích. Tôi nghĩ rằng hầu hết các khôi phục được thực hiện thủ công, vì vậy không có vấn đề gì nếu bạn chạy nó dưới dạng tài khoản gốc.

Nếu bạn muốn chạy nó từ một lệnh, hãy chạy nó tại dấu nhắc lệnh thay vì PowerShell. Điều này là do biểu tượng không thể được sử dụng trong < PowerShell.

Chạy lệnh sau:

mysql -u root -p<root のパスワード> <データベース名> < <バックアップした SQL のファイルパス>

ví dụ

mysql -u root -ppassword test_database < C:\Temporary\Backup.sql

Sao lưu cơ sở dữ liệu tự động

Đối với Windows, người ta thường sử dụng Trình lập lịch tác vụ. Đầu tiên, tạo một tệp hàng loạt. Tạo tệp bat, nhập nội dung khi chúng được sao lưu bằng lệnh và lưu nó. Mã hóa ký tự được lưu bằng Shift-JIS. Vị trí và tên tệp của tệp bó là tùy ý.

Đăng ký với Trình lập lịch tác vụ. Nhấp chuột phải vào menu Start và chọn Computer Management.

Từ menu bên trái, chọn Computer Management > System Tools > Task Scheduler > Task Scheduler Library. Chọn "Create Task..." từ menu bên phải.

Định cấu hình tab Chung. "Tên" sẽ xuất hiện trong danh sách các tác vụ, vì vậy hãy nhập tên dễ hiểu. Trong các tùy chọn bảo mật, hãy kiểm tra "Chạy bất kể người dùng có đăng nhập hay không".

Trong tab "Kích hoạt", bạn có thể đặt thời điểm thực hiện sao lưu. Đặt cài đặt này theo thao tác của bạn.

Trong tab "Hoạt động", đặt nó để khởi chạy tệp hàng loạt bạn vừa tạo.

Sau khi cài đặt từng cái, hãy xác nhận bằng đồng ý cái nút.

Nhập mật khẩu của bạn để đăng ký chạy theo tài khoản được chỉ định.

Sau đó, kiểm tra xem bản sao lưu có được thực hiện tại thời điểm được chỉ định hay không.