MyISAM
Đối với bảng MyISAM mydb.mytable, bạn nên có ba tệp
\bin\mysql\mysql5.6.12\data\mydb\mytable.frm
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYD
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYI
Chúng phải có thể truy cập dưới dạng bảng vì mỗi tệp chứa dữ liệu cần thiết, siêu dữ liệu và thông tin chỉ mục. Chung, họ tạo thành bảng. Không có mecahnism công cụ lưu trữ bên ngoài để truy cập.
InnoDB
Hãy xem Đại diện hình ảnh này của InnoDB
Điều duy nhất gắn ibdata1 vào các .ibd
tệp là từ điển dữ liệu.
Nhiệm vụ của bạn, nếu bạn quyết định chấp nhận nó, là tạo từng bảng và trao đổi trong .ibd
Trước khi bạn làm bất cứ điều gì, hãy tạo một bản sao đầy đủ của "\ bin \ mysql \ mysql5.6.12 \ data" cho người khác
Đây là một mẫu
Giả sử bạn có một cơ sở dữ liệu mydb
với bảng mytable
. Điều này có nghĩa là
- Bạn có thư mục
\bin\mysql\mysql5.6.12\data\mydb
- Trong thư mục đó, bạn có
Bạn cần có .frm
. Nếu bạn nhìn vào bài viết của tôi, làm thế nào có thể trích xuất lược đồ bảng từ chỉ tệp .frm? , bạn có thể tải xuống một tiện ích MySQL có thể tạo SQL cần thiết để tạo bảng.
Bây giờ bạn nên làm như sau
- Di chuyển
mytable.ibd
đến\bin\mysql\mysql5.6.12\data
- Chạy SQL để tạo bảng InnoDB
- Đăng nhập vào mysql và chạy
ALTER TABLE mydb.mytable DISCARD TABLESPACE;
(Điều này sẽ xóa \bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
)
- Sao chép
\bin\mysql\mysql5.6.12\data\mytable.ibd
vào\bin\mysql\mysql5.6.12\data\mydb
- Đăng nhập vào mysql và chạy
ALTER TABLE mydb.mytable IMPORT TABLESPACE;
(Điều này sẽ đăng ký \bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
vào từ điển dữ liệu)
Sau này, bảng mydb.mytable
nên có thể truy cập đầy đủ. Bạn có thể kiểm tra khả năng truy cập đó bằng cách chạy đơn giản:
SELECT * FROM mydb.mytable LIMIT 10;
Hãy thử một lần !!!
UỐNG (Phục hồi dữ liệu Kết hợp kiến thức cần thiết) Có trách nhiệm