Khi tôi cố gắng thả một bảng, MySQL bị treo. Tôi không có bất kỳ phiên mở nào khác. Làm thế nào để giải quyết điều này? Tôi đã đợi 10 giờ và quá trình này đã không chấm dứt.Rớt bảng làm cho MySQL treo
Trả lời
Waiting for table metadata lock
drop table tableA name
SELECT l1.lat, l1.lon, l2.zipcode FROM tableA l1, tableBl2 where l1.lat = l2.latitude and l1.lon = l2.longitude limit 10
Nếu đây là bảng của bạn, xem this link
bạn có một bế tắc ngầm. Giết các giao dịch khác để thả thả hoặc hủy bỏ thả để giải phóng các giao dịch khác.
Bạn có thể sử dụng KILL thread_id, bằng sql_plus.
Tôi đang thêm thông tin từ khi tôi đưa ra một trải nghiệm thú vị khác.
Metadata
ổ khóa chết có thể không kém xảy ra giữa một hoạt động DDL trên bàn nhất định (drop
, alter
...) và một chọn truy vấn trên bảng đó.
Có, select
. Vì vậy, nếu bạn lặp qua một con trỏ trong mysql (hoặc php, ví dụ với pdo::fetch
), và bạn chạy một câu lệnh ddl trên cùng một bảng, bạn sẽ bị bế tắc.
Một giải pháp cho trường hợp không điển hình này là giải phóng các khóa ẩn bằng câu lệnh commit
sau khi bất kỳ câu lệnh chọn nào được tìm nạp hoàn toàn.
Tôi đã bỏ bảng, và bây giờ tôi không thể tạo một bảng mới khi tôi nhận được mã lỗi (28): không thể đồng bộ tập tin '..' vào đĩa. Tôi giả sử bằng cách thả bảng, tôi sẽ có nhiều không gian trống hơn. –
tệp nào? Tôi nghĩ bạn nên khởi động lại máy chủ kể từ khi khóa kéo dài một thời gian dài. – Sebas
khi tôi chạy một bảng tạo bảng thực sự lớn với nhiều cột tôi nhận được thông báo lỗi này. bằng cách khởi động lại máy chủ, bạn có nghĩa là thoát ra và kết nối lại? làm thế nào để bạn explicity khởi động lại máy chủ? –
Khởi động lại MySQL có thể không phải là giải pháp đẹp nhất nhưng nó làm việc cho tôi:
sudo /etc/init.d/mysql restart
mysqladmin drop YOURDATABASE
'mysql.server restart' hoạt động cho tôi. –
xin vui lòng gửi kết quả của HIỂN THỊ ENGINE InnoDB TÌNH TRẠNG nếu cơ sở dữ liệu đang được InnoDB tất nhiên – Sebas
trông giống như bảng bạn đang cố gắng thả đã được sử dụng (tốt, tôi có nghĩa là nó đã bị khóa bởi một số quá trình khác) và do đó nó chờ đợi cho quá trình cam kết. – Rahul
Tôi đã thêm đầu ra nhật ký. –