Khi chưa biết lệnh này mình vẫn thường xuyên sử dụng MySQL Workbench hoặc phpmyadmin để thực hiện việc backup cơ sở dữ liệu trên các website Joomla, wordpress, web PHP… nó thường gặp phải các vấn đề như file database quá nặng hoặc lỗi …
Tuy nhiên, khi bạn quản lý trực tiếp server linux hoặc cloud amazon … bạn sử dụng lệnh backup database thật sự rất hiệu quả.
Hôm nay, mình sẽ hướng dẫn cho các bạn cách sử dụng câu lệnh mysqldump backup và khôi phục dữ liệu.
1. Backup MySQL Database
Giả sử bạn muốn backup một cơ sở dữ liệu trên MySQL server là mydatabase.
Vậy để backup MySQL với lệnh mysqldump tên cơ sở dữ liệu là mydatabase ta có dòng lệnh sau:
mysqldump -u root -p mydatabase > my_database.sql
Sau đó nhấn Enter bạn sẽ được yêu cầu nhập mật khẩu cho người dùng (user) tên là root hoặc tên khác nếu không phải là root.
– Nếu thành công thì MySQL sẽ tạo một tập tin với tên là my_database.sql ở thư mục hiện tại trên terminal. Thông thường mình sẽ tạo một thư mục trên terminal là backup sau đó trỏ về thư mục backup:
[root@localhost backup]# sudo mysqldump -u root -p mydatabase > 20181219-mydatabase.sql
– Nếu không thành công hiển thị lỗi:
mysqldump command not found
Thì bạn cần sử dụng đường dẫn đầy đủ của tập tin chương trình mysqldump. Mặc định tập tin này nằm ở thư mục bin bên trong thư mục cài đặt MySQL trên server
2. Restore MySQL Database (Trường hợp khôi phục cơ sở dữ liệu)
Bạn cần khôi phục tập tin cơ sở dữ liệu 20181219-mydatabase.sql chứa dữ liêu đã được backup từ ngày 19/12/2018 của database có tên là mydatabase trên server. Thời gian sau bạn tác động đến dữ liệu trên server và vô tình xóa mất một số dữ liệu và muốn khôi phục (restore) dữ liệu lại bạn chạy lệnh sau:
mysql -u root -p mydatabase < 20181219-mydatabase.sql
Nhấn Enter bạn sẽ được yêu cầu nhập mật khẩu cho người dùng root.
Cuối cùng bạn vào xem kết quả nhé.