Mysqldump là một tiện ích sao lưu và phục hồi dữ liệu có sẵn trong MySQL. Khi sử dụng Mysqldump , bạn có thể backup được những database có dung lượng lớn, có thể từ 1 GB trở nên mà vẫn dễ dàng và nhanh chóng. Điều mà các công cụ sao lưu database khác như sử dụng phpmyadmin, sypex dumper, Mysqldumper… không làm được.
Về lý thuyết dùng mysqldump bạn có thể backup database lên tới hàng chục GB vẫn được. Tuy nhiên backp và phục hồi database dung lượng lớn như vậy, Server của bạn phải mạnh mới làm được. Mình backup một database cho site mình với dung lượng 2,2 GB mất chưa đến 1 phút là xong. Mysqldump sẽ tạo một file backup .sql file này ta có thể lưu trữ ở một nơi khác cho an toàn và trong trường hợp có sự cố, ta dùng chính mysqldump để restore database từ chính file backup này bằng một lệnh duy nhất.
Mysqldump sử dụng qua SSH vì vậy bạn chỉ sử dụng trên VPS, Server và các hosting có hỗ trợ SSH như stablehost ….
Trong bài viết này, mình sẽ nêu một vài trường hợp và cách sử dụng mysqldump để sao lưu và phục hồi database.
Hai lệnh sao lưu và phục hồi của mysqldump
Sao lưu:
mysqldump -u username -p[username_password] databasename > /path/databasename_backup.sql
Phục hồi:
mysql -u username -p[username_password] databasename < /path/to/databasename_backup.sql
các ví dụ dưới mình dùng user là root, nơi lưu trữ backup file mình sử dụng /home/abc.com/public_html/saoluu123/ . Bạn có thể thay đổi nó cho đúng với đường dẫn lưu file backup, user, database và mật khẩu của bạn.
Làm thế nào sao lưu (backup) database
Sao lưu 1 database
Ví dụ ta sao lưu database ABC với user là root, mật khẩu là 123456, folder lưu trữ file backup là /home/abc.com/public_html/saoluu123/
ta sẽ dùng lệnh như sau:
mysqldump -u root -p123456 ABC > /home/abc.com/public_html/saoluu123/ABC_backup.sql
Sao lưu hai hay nhiều database của 1 user
ví dụ sao lưu hai database ABC và CDE của user: root, mới mật khẩu 123456. Sao lưu vào /home/abc.com/public_html/saoluu123/
ta dùng lệnh sau:
mysqldump -u root -p123456 --databases ABC CDE > /home/abc.com/public_html/saoluu123/ABC_CDE.sql
ta kiểm tra xem sao lưu đã chính xác chưa:
grep -i "Current database:" /home/abc.com/public_html/saoluu123/ABC_CDE.sql -- Current Database: `ABC` -- Current Database: `CDE`
tùy theo dung lượng database và cấu hình server mà kết quả kiểm tra sẽ nhanh hay chậm nhé.
Sao lưu tất cả database của cùng một user
mysqldump -u root -p[mat_khau] --all-databases > /home/abc.com/public_html/saoluu123/all.sql
Sao lưu 1 table trong database
mysqldump -u root -p[mat_khau]abc wp_post \ > /home/abc.com/public_html/saoluu123/abc_wp_post.sql
với wp_post là một table trong abc mình cần sao lưu.
Phục hồi database
Trong ví dụ này mình sẽ phục hổi database ABC đã backup ở trên. Bạn phải chắc chắn database ABC đã được tạo trước khi ta phục hồi nhé. Nếu phục hồi nhiều database 1 lúc, tất cả các database đều phải được tạo trước rồi nhé !
#mysql -u root -p[mat_khau] mysql> creat database ABC; Query OK, 1 row affected (0.02 sec) mysql -u root -p123456 ABC < /home/abc.com/public_html/saoluu123/ABC_backup.sql
(Với user: root, database ABC, mật khẩu 123456)
#mysql -u username -p[username_password] databasename < /path/to/databasename_backup.sql
Vậy là bài viết đã hoàn thành. Các bạn có thể vận dụng nó để sao lưu dữ liệu cho VPS, Server của mình.
Nếu bạn chưa có VPS thì đừng quên tham khảo mã giảm giá VPS trước khi mua để mua với giá tiết kiệm nhất nha: Mã giảm giá VPS Coupon
Xem khuyến mại của : Digitalocean – Ramnode – Vultr .
Chúc bạn thành công.