Lỗi khi hủy cơ sở dữ liệu InnoDB


8

Tôi đang cố gắng bỏ cơ sở dữ liệu trong mysql, nhưng mỗi khi tôi gặp lỗi này

ERROR 2013 (HY000): Lost connection to MySQL server during query

thậm chí đăng nhập với quyền root.

Ban đầu, tôi có một bảng bị hỏng mà tôi không thể tạo lại, do đó tôi quyết định tạo lại db. Tôi có tệp innodb trên mỗi bảng, không chắc có vấn đề gì không.

Làm thế nào tôi có thể bỏ cơ sở dữ liệu này?

Câu trả lời:


10

Tôi sợ bạn không thể bỏ cơ sở dữ liệu.

Vấn đề đến bảng là tham nhũng. Nó không nhất thiết phải là .ibdtập tin. Đó là, nhiều khả năng, mục từ điển dữ liệu trong ibdata1 ( Xem hình đại diện của ibdata1 ).

Tôi đã viết về điều này trở lại Mar 02, 2012: Bảng InnoDB CHỌN trả về ERROR 2006 (HY000): Máy chủ MySQL đã biến mất (sau khi mất điện)

Mặc dù tẻ nhạt, đây là những gì bạn có thể làm để lưu các bảng khác trong cơ sở dữ liệu bị hỏng đó bad_db:

BƯỚC 01) USE bad_db

BƯỚC 02) Chạy SELECT COUNT(1) FROM tablename;cho mọi bảng trong bad_db. Thu thập tất cả các tên bảng không gặp sự cố mysqld khi bạn cố chạy số đếm.

BƯỚC 03) Chạy mysqldump -u... -p... bad_db table1 table2 ... tableN > bad_db_goodtables.sql cho tất cả các bảng không gặp sự cố mysqld.

Nếu bạn định sử dụng một tên cơ sở dữ liệu khác, thì hãy tải lại bad_db_goodtables.sqlvào cơ sở dữ liệu mới đó.

Nếu bạn cần cơ sở dữ liệu cùng tên, BAD News !!! Bạn sẽ có đại tu ibdata1. Có nhiều bước hơn:

BƯỚC 04) mysqldump tất cả các cơ sở dữ liệu khác vào các tệp kết xuất riêng biệt

BƯỚC 05) Thực hiện Dọn dẹp cơ sở hạ tầng InnoDB ( Xem Oct 29, 2010bài đăng StackOverflow của tôi )

BƯỚC 06) Tải lại tất cả các cơ sở dữ liệu tốt khác của mysqldumps.

Hãy thử một lần !!!


Rolando đánh giá cao! Trả lời tuyệt vời. Muốn có một cách để sửa chữa db đó. Sẽ thích nó cùng tên :)
giorgio79

Tôi đã chạy MySQL được một lúc rồi, điều này xảy ra lần đầu tiên vào ngày khác, cảm ơn vì lời giải thích.
webLacky3rdClass

1
Làm thế nào bạn có thể thực hiện dọn dẹp cơ sở hạ tầng InnoDB nếu bạn không thể bỏ cơ sở dữ liệu và bước # 2 của việc dọn dẹp là bỏ tất cả cơ sở dữ liệu?
bancer

Có lẽ là một tình huống hiếm gặp, nhưng tôi đã có điều này xảy ra trong khi khôi phục bãi rác làm công việc nền. Thiết bị đầu cuối cha đã chết và db không thể bị hủy cho đến khi kết nối khôi phục bị tắt.
STW
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.