Tôi đang tìm cách khôi phục DB từ bản sao lưu trước. Tuy nhiên, sao lưu không chỉ đơn giản là ghi đè tất cả các bản ghi hiện có mà thay vào đó chỉ thêm sự khác biệt giữa DB hiện tại và tệp sao lưu. Nếu không có bản ghi "không tồn tại" được lưu trữ trong bản sao lưu, không có gì xảy ra. Các bản sao lưu được thực hiện với mysqldump. Bất kì manh mối nào? Cảm ơn trướcnhập mysql chỉ thiếu hàng
5
A
Trả lời
5
Xóa câu lệnh DROP TABLE
và CREATE TABLE
khỏi tệp kết xuất. Thay đổi các tuyên bố INSERT
thành INSERT IGNORE
. Sau đó tải tệp sao lưu và không nên cập nhật bất kỳ hàng trùng lặp nào.
8
Đây là một câu trả lời ít thủ công:
mysqldump -t --insert-ignore --skip-opt -u USER -pPASSWORD -h 127.0.0.1 database > database.sql
Đó lệnh xuất khẩu với -t --insert-ignore --skip-opt
tùy chọn này sẽ cung cấp cho bạn một file sql bãi không có DROP TABLE
hoặc CREATE TABLE
lệnh và mỗi INSERT
hiện nay là một INSERT IGNORE
.
BONUS:
này sẽ đổ một bảng duy nhất trong cùng một cách:
mysqldump -t --insert-ignore --skip-opt -u USER -pPASSWORD -h 127.0.0.1 database table_name > table_name.sql
tôi cần ngày hôm nay và không thể giúp đỡ, nhưng để chia sẻ nó!
Cảm ơn, đã thử nhưng sau đó nó chỉ dừng cập nhật DB ở tất cả – z3po
Sơ đồ có thay đổi kể từ khi sao lưu không? – Barmar
Không, không có gì thay đổi. Đã thử với các bản sao lưu mới được thực hiện cũng như – z3po