Về cơ bản nhất, lệnh mysqldump bạn có thể sử dụng là:
mysqldump -u$user -p$pass -S $socket --all-databases > db_backup.sql
Điều đó sẽ bao gồm cơ sở dữ liệu mysql, sẽ có tất cả người dùng / bảng privs.
Có những hạn chế khi chạy điều này trên hệ thống sản xuất vì nó có thể gây ra khóa. Nếu bảng của bạn đủ nhỏ, nó có thể không có tác động đáng kể. Bạn sẽ muốn kiểm tra nó trước.
Tuy nhiên, nếu bạn đang chạy một môi trường InnoDB thuần túy, bạn có thể sử dụng --single-transaction
cờ sẽ tạo kết xuất trong một giao dịch duy nhất (lấy nó) do đó ngăn chặn việc khóa trên cơ sở dữ liệu. Lưu ý, có những trường hợp góc trong đó FLUSH TABLES
ban đầu lệnh chạy bởi kết xuất có thể khóa các bảng. Nếu đúng như vậy, hãy hủy kết xuất và khởi động lại nó. Tôi cũng khuyên bạn rằng nếu bạn đang sử dụng cái này cho mục đích sao lưu, hãy sử dụng --master-data
cũng như gắn cờ để lấy tọa độ nhật ký nhị phân từ nơi kết xuất được thực hiện. Bằng cách đó, nếu bạn cần khôi phục, bạn có thể nhập tệp kết xuất rồi sử dụng mysqlbinlog
lệnh để phát lại các tệp nhật ký nhị phân từ vị trí nơi kết xuất này được thực hiện.