Sao lưu MySQL bằng lệnh mysqldump
MySQL hỗ trợ nhiều cách thức và công cụ khác nhau để sao lưu dữ liệu. Trong đó, mysqldump là công cụ đơn giản và được sử dụng nhiều nhất. Lệnh mysqldump giúp sao lưu (dump) dữ liệu của một (hoặc nhiều) database ra file .sql. Không chỉ sao lưu database, mysqldump còn hỗ trợ sao lưu table.
Cú pháp lệnh mysqldump
Bạn sử dụng lệnh mysqldump theo cú pháp sau:
# mysqldump -u [username] –p[password] [database_name] > [backup_file.sql] |
Các tham số của lệnh có ý nghĩa như sau:
- [username]: Tên đăng nhập MySQL. Tài khoản này phải đủ quyền sao lưu database.
- [password]: Mật khẩu đăng nhập MySQL.
- [database_name]: Tên database cần sao lưu.
- [backup_file.sql]: Tên file .sql chứa dữ liệu sao lưu.
Bạn cũng có thể sử dụng tùy chọn username và password theo dạng:
# mysqldump –username[=username] –password[=password] [database_name] > [backup_file.sql] |
Nếu bạn không cung cấp giá trị password ở tùy chọn -p (hoặc –password), mysqldump sẽ yêu cầu bạn nhập password. Bạn nên cung cấp password theo cách này giảm thiểu các nguy cơ về bảo mật.
Sao lưu database
Ví dụ 1 – Sao lưu một database
Để sao lưu một database, bạn dùng lệnh mysqldump như ví dụ sau:
# mysqldump -u BackupUser –pMyPassword zBackupDB1 > /dbbackup/zbackup_db1.sql |
Ví dụ 2 – Sao lưu nhiều database
Để sao lưu cùng lúc nhiều database, bạn dùng lệnh mysqldump theo cú pháp ở ví dụ sau:
# mysqldump -u BackupUser –pMyPassword –databases zBackupDB1 zBackupDB2 > /dbbackup/zbackup_db1_db2.sql |
Ví dụ 2 – Sao lưu tất cả database
Để sao lưu tất cả database cóa trong MySQL, bạn dùng lệnh mysqldump theo cú pháp ở ví dụ sau:
# mysqldump -u BackupUser –pMyPassword –all-databases > /dbbackup/zbackup_all_db.sql |
Sao lưu table
Không chỉ sao lưu database, mysqldump còn hỗ trợ sao lưu table của database (điều bạn không thể thực hiện được khi sao lưu dạng Physical backup). Để sao lưu table, bạn chỉ việc thêm tên table kế sau tên database.
Ví dụ 1 – Sao lưu một table
Để sao lưu một table trong database, bạn dùng lệnh mysqldump theo cú pháp ở ví dụ sau:
# mysqldump -u BackupUser –pMyPassword zBackupDB1 Table1 > /dbbackup/zbackup_db1_table1.sql |
Ví dụ 2 – Sao lưu nhiều table
Để sao lưu nhiều table trong database, bạn dùng lệnh mysqldump theo cú pháp ở ví dụ sau:
# mysqldump -u BackupUser –pMyPassword zBackupDB1 Table1 Table2 > /dbbackup/zbackup_db1_table1_table2.sql |
Phục hồi database từ file .sql
Để phục hồi database từ file .sql được tạo ra bởi lệnh mysqldump này, bạn sử dụng lệnh mysql hoặc mysqlimport. Tham khảo bài viết Phục hồi database MySQL bằng lệnh mysql và mysqlimport để biết cách phục hồi.