Hướng dẫn mysql kill query not working - truy vấn giết mysql không hoạt động

9

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một bảng khóa truy vấn trong mysql (sử dụng innodb):

UPDATE table SET status = 2 WHERE status = 3

Truy vấn này gây ra bế tắc trên bàn và không thể bỏ qua nó.

Tôi đã cố gắng làm:

show processlist

sau đó tiêu diệt ID quá trình nhưng dường như tôi không thể giết nó

Tôi đã thử:

kill 9588

9588 là ID quy trình.

Sau đó, tôi làm show processlist Tôi vẫn thấy cùng một truy vấn trong danh sách.

Làm thế nào tôi có thể buộc giết quá trình này và sau đó tại sao truy vấn này sẽ gây ra một khóa chết? Làm thế nào tôi có thể sửa chữa nó?

Hướng dẫn mysql kill query not working - truy vấn giết mysql không hoạt động

Hỏi ngày 10 tháng 4 năm 2013 lúc 17:01Apr 10, 2013 at 17:01

2

Khi bạn chạy phiên bản MySQL trên RDS và muốn giết một luồng hoặc truy vấn vì một số lý do, bạn sẽ thấy bạn không thể sử dụng KILL hoặc mysqladmin kill vì bạn không có quyền làm như vậy.

RDS cung cấp các quy trình được lưu trữ có tên mysql.rds_killmysql.rds_kill_query sẽ giết một luồng và truy vấn tương ứng. Để tiêu diệt một chủ đề, trước tiên hãy sử dụng

show processlist
0 để lấy danh sách các luồng và tìm ID của chủ đề bạn muốn giết. Giả sử ID luồng là 53512, sau đó sử dụng

CALL mysql.rds_kill(53512)

Nguồn: http://snak.tumblr.com/post/13856391340/killing-a-thread-or-query-of-mysql-nucky-on-rds

Đã trả lời ngày 30 tháng 10 năm 2014 lúc 17:24Oct 30, 2014 at 17:24

Hướng dẫn mysql kill query not working - truy vấn giết mysql không hoạt động

Eric Leschinskieric LeschinskiEric Leschinski

Phù vàng 140K91 Huy hiệu vàng405 Huy hiệu đồng91 gold badges405 silver badges327 bronze badges

2

Lệnh KILL yêu cầu chấm dứt truy vấn và trạng thái của lệnh sẽ hiển thị là

show processlist
2. Không có cách nào để buộc phải giết một cái gì đó và chấm dứt ngay lập tức.

Là phương sách cuối cùng, bạn luôn có thể tắt và khởi động lại quy trình máy chủ

show processlist
3 của mình.

Đã trả lời ngày 10 tháng 4 năm 2013 lúc 17:07Apr 10, 2013 at 17:07

Tadmantadmantadman

204K22 Huy hiệu vàng230 Huy hiệu bạc255 Huy hiệu Đồng22 gold badges230 silver badges255 bronze badges

Bạn cần phải chạy lệnh sau để tiêu diệt quá trình.

> show processlist;  
> kill query processId;

Tham số truy vấn Chỉ định rằng chúng ta cần tiêu diệt quy trình lệnh truy vấn.

Cú pháp cho quá trình tiêu diệt như sau

Giết [Kết nối | Truy vấn] ProcessList_id

Vui lòng tham khảo liên kết này để biết thêm thông tin.

Đã trả lời ngày 4 tháng 1 năm 2019 lúc 8:40Jan 4, 2019 at 8:40

Bạn nên cố gắng giết

show processlist
4 trên máy tính của bạn trước và hơn là khay để giết chương trình bạn đang chạy Truy vấn White White.

Hy vọng nó sẽ làm việc cho bạn

Đã trả lời ngày 10 tháng 4 năm 2013 lúc 17:15Apr 10, 2013 at 17:15

3

Người bình luận đã chính xác -

show processlist
5 của bạn đã giết chết truy vấn chủ đề của riêng bạn ... như được chỉ ra bởi thực tế là hàng từ danh sách xử lý chỉ ra rằng chủ đề 77 (bạn) là chủ đề hiện đang chạy lệnh
show processlist
6.

Cách bạn khắc phục vấn đề của mình là tìm bước bạn đã thực hiện trước khi chạy

show processlist
7 và hoàn tác nó. Đây dường như không phải là vấn đề MySQL.

Từ hướng dẫn sử dụng MediaWiki: Sao lưu một wiki ...

Mysqldump từ dòng lệnh

Cách thuận tiện nhất để tạo một tệp kết xuất của cơ sở dữ liệu bạn muốn sao lưu là sử dụng công cụ kết xuất MySQL tiêu chuẩn MySQLDump từ dòng lệnh. Hãy chắc chắn để có được các tham số đúng hoặc bạn có thể gặp khó khăn trong việc khôi phục cơ sở dữ liệu.

Đầu tiên chèn dòng sau vào địa phương.php

show processlist
8

Điều này có thể được gỡ bỏ ngay khi hoàn thành bãi rác.

Cơ sở dữ liệu của bạn không bị khóa ... wiki của bạn bị khóa, vì bạn đã khóa nó trước khi bạn chạy bản sao lưu.

Nếu biến

show processlist
9 trong tệp cấu hình
kill 9588
0 của MediaWiki được đặt, thì điều này sẽ khóa wiki chống lại ghi và cung cấp thông điệp bạn đặt trong chuỗi như một lời giải thích cho người dùng wiki.

Điều này cho thấy rằng bạn đã thêm dòng này trong khi đọc các tài liệu MediaWiki nhưng không xóa dòng khi bạn đã hoàn thành bản sao lưu, không liên quan đến

show processlist
7 hoặc MySQL. Khi
show processlist
7 (hoặc bất kỳ máy khách nào khác) ngắt kết nối, khóa không thể nán lại ngay cả trong MySQL vì khóa chỉ có thể được giữ miễn là phiên/luồng giữ khóa vẫn được kết nối.

Nếu wiki của bạn không lớn và việc wiki của bạn trở nên không phản hồi ngắn gọn trong khi bãi rác đang chạy không phải là vấn đề, thì bạn không cần phải khóa wiki. Tôi có một công việc theo lịch trình chạy đối với máy chủ MySQL chạy cài đặt MediaWiki của tôi và tôi không khóa wiki để sao lưu. Nếu wiki của bạn là quan trọng về nhiệm vụ và bạn muốn không bị gián đoạn tiềm năng, bạn cũng có thể thiết lập một nô lệ sao chép MySQL và thực hiện các bản sao lưu chống lại nô lệ thay vì chủ. Nếu máy chủ của bạn có tài nguyên cho nó, bạn có thể chạy nô lệ trên cùng một máy với chủ, trên một cổng khác ngoài 3306 mặc định.

Làm thế nào để tôi buộc giết một truy vấn trong mysql?

Chạy lệnh sau: mysql> select group_concat (concat ('kill', id, ';') sepectator '') từ thông tin_schema.processList trong đó người dùng 'người dùng hệ thống'; Điều này sẽ giết tất cả các truy vấn MySQL của bạn.mysql> SELECT GROUP_CONCAT(CONCAT('KILL ',id,';') SEPARATOR ' ') FROM information_schema. processlist WHERE user <> 'system user'; This will kill all your MySQL queries.

MySQL Kill truy vấn là gì?

Giá trị cho luồng hiện tại được trả về bởi hàm Connection_id ().Giết cho phép một kết nối hoặc sửa đổi truy vấn tùy chọn: Kết nối tiêu diệt giống như giết mà không có công cụ sửa đổi: nó chấm dứt kết nối được liên kết với ProcessList_id đã cho, sau khi chấm dứt bất kỳ câu lệnh nào mà kết nối đang thực thi.It terminates the connection associated with the given processlist_id , after terminating any statement the connection is executing.

Tôi có thể giết quá trình mysql không?

MySQL không có một lệnh duy nhất để giết tất cả các quy trình.Để tiêu diệt tất cả các quy trình cho một người dùng cụ thể, hãy sử dụng Concat để tạo một tệp với danh sách các luồng và câu lệnh.Trong trường hợp của chúng tôi, chúng tôi đã nhập Root với tư cách là người dùng.Để chỉ định một người dùng khác, hãy thay thế root bằng tên người dùng mong muốn.. To kill all processes for a specific user, use CONCAT to create a file with the list of threads and statements. In our case, we entered root as the user. To specify another user, replace root with the desired username.

Làm cách nào để bắn một truy vấn trong mysql?

Nhấp vào nhóm hành động MySQL trong hộp công cụ hành động.Tìm hành động bằng cách duyệt các nhóm hành động hoặc bằng cách nhập tên hoặc chức năng hành động vào trường tìm kiếm ở đầu hộp công cụ hành động.Kéo MySQL - Thực hiện một hành động truy vấn đến điểm trong quy trình công việc khi bạn muốn chạy truy vấn.Drag the MySQL - Execute a query action to the point in the workflow when you want to run a query.