Hôm nay mình sẽ hướng dẫn các bạn cách sao lưu và khôi phục MySQL hoặc MariaDB tự động bằng CronTab.
Xác định database cần backup
Đầu tiên cần xác định xem các bạn cần sao lưu database nào. Đăng nhập vào MySQL / MariaDB bằng lệnh
user@server~: mysql -u USERNAME -p
Nếu sử dụng root để đăng nhập thì không cần phải nhập pass, vì MySQL / MariaDB có cơ chế đăng nhập bằng socket
user@server~: sudo mysql -u root MariaDB [(none)]> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | project1 | | important_db | | information_schema | | mysql | | performance_schema | +--------------------+ 5 rows in set (0.012 sec)
Mình muốn backup project1 đến thư mục /home/user/ thì mình sẽ sử dụng câu lệnh
user@server~: sudo mysqldump -u root --databases project1 > /home/user/project1.sql
Nếu bạn sử dụng tài khoản khác để đăng nhập thì bạn có thể sử dụng tùy chọn -p và mật khẩu viết liền nhau, không có dấu cách.
user@server~: mysqldump -u jessy -pMat_khau --databases project1 > /home/user/project1.sql
Tạo CronTab sao lưu tự động
Các bạn có thể xem thêm bài
Để tạo CronTab để lên lịch sao lưu các bạn sử dụng câu lệnh dưới đây
user@server~: crontab -e Nếu muốn chạy crontab với quyền root thì dùng lệnh user@server~: sudo crontab -e
Sau đó thêm dòng sau với dưới cùng của đoạn code sau để chạy backup lúc 2h sáng hàng ngày. Bạn có thể đặt lại thời gian như các bạn mong muốn.
0 2 * * * sudo mysqldump -u root --databases project1 > /home/user/project1.sql Hoặc 0 2 * * * mysqldump -u jessy -pMat_khau --databases project1 > /home/user/project1.sql
Ấn Ctrl + X và Ctrl + O để thoát
Khôi phục lại database
Các bạn sử dụng lệnh sau để khôi phục lại database project1
user@server~: sudo mysql -u root < /home/user/project1.sql hoặc user@server~: mysql -u jessy -pMat_khau < /home/user/project1.sql
Như vậy là mình đã hướng dẫn các bạn sao lưu và khôi phục MySQL và MariaDB trên Ubuntu Server 20.10. Chúc các bạn thành công