Hướng dẫn mysql kill process - quá trình giết mysql
Không, không có lệnh mysql tích hợp cho điều đó. Có nhiều công cụ và tập lệnh khác nhau hỗ trợ nó, bạn có thể giết một số kết nối theo cách thủ công hoặc khởi động lại máy chủ (nhưng nó sẽ chậm hơn).no built-in MySQL command for that. There are various tools and scripts that support it, you can kill some connections manually or restart the server (but that will be slower).no built-in MySQL command for that. There are various tools and scripts that support it, you can kill some connections manually or restart the server (but that will be slower). Show
Nội dung chính ShowShow
Nội phân chính
Sự kết luận Nội phân chínhlimit the amount of connections per username, so that if the process keeps misbehaving, the only affected process is the process itself and no other clients on your database get locked out. Sử dụng Bạn có thể chỉnh sửa cài đặt thời gian chờ để có trình nền MySQL tự giết các quy trình không hoạt động hoặc tăng số lượng kết nối. Bạn thậm chí có thể giới hạn số lượng kết nối trên mỗi tên người dùng, để nếu quá trình tiếp tục sai, quá trình bị ảnh hưởng duy nhất là chính quá trình và không có máy khách nào khác trên cơ sở dữ liệu của bạn bị khóa.limit the amount of connections per username, so that if the process keeps misbehaving, the only affected process is the process itself and no other clients on your database get locked out. Nếu bạn không thể kết nối bản thân nữa với máy chủ, bạn nên biết rằng MySQL luôn bảo lưu 1 kết nối thêm cho người dùng với đặc quyền Sau đó, sau khi bạn có thể truy cập lại cơ sở dữ liệu của mình, bạn nên sửa chữa quy trình (trang web) sinh sản đó nhiều kết nối. Bảo trì cơ sở dữ liệu hoặc máy chủ thường được thực hiện bởi các quản trị viên cơ sở dữ liệu vào ban đêm. Nhưng những thói quen này đôi khi bị chặn bởi các truy vấn hoặc ứng dụng chạy dài treo trên các khóa lâu hơn nhiều so với dự kiến. Phương pháp 1. Giết kết nối MySQL & nbsp; dựa trên đăng nhập người dùng & nbsp; sử dụng một sự kiệnChấm dứt kết nối MySQL & nbsp; dựa trên đăng nhập người dùng & nbsp; sử dụng một sự kiện gọi quy trình được lưu trữ Phương pháp 2. Tạo tệp BAT để khởi chạy máy khách MySQL và quy trình với các tham số Sự kết luận Nội phân chính Sử dụng Bạn có thể chỉnh sửa cài đặt thời gian chờ để có trình nền MySQL tự giết các quy trình không hoạt động hoặc tăng số lượng kết nối. Bạn thậm chí có thể giới hạn số lượng kết nối trên mỗi tên người dùng, để nếu quá trình tiếp tục sai, quá trình bị ảnh hưởng duy nhất là chính quá trình và không có máy khách nào khác trên cơ sở dữ liệu của bạn bị khóa.limit the amount of connections per username, so that if the process keeps misbehaving, the only affected process is the process itself and no other clients on your database get locked out. Bảo trì cơ sở dữ liệu hoặc máy chủ thường được thực hiện bởi các quản trị viên cơ sở dữ liệu vào ban đêm. Nhưng những thói quen này đôi khi bị chặn bởi các truy vấn hoặc ứng dụng chạy dài treo trên các khóa lâu hơn nhiều so với dự kiến. Thường xuyên, mức độ ưu tiên được dành cho ứng dụng và các thói quen bảo trì thường bị hủy để không can thiệp vào ứng dụng. Nhưng đôi khi điều đó xảy ra là bạn cần phải giết một truy vấn MySQL tốn thời gian và đã hoàn thành vào một thời điểm nhất định. Trong trường hợp này, bạn có thể cần một cách nhanh chóng để chấm dứt kết nối liên quan. Trong bài viết này, chúng tôi mong muốn xem xét hai cách để giải quyết vấn đề nêu trên. Chúng tôi sẽ sử dụng DBForge Studio cho MySQL cho mục đích đó. Phương pháp đầu tiên bao gồm việc tạo ra một sự kiện MySQL đặc biệt. Khi bạn tạo một sự kiện, bạn tạo một đối tượng cơ sở dữ liệu được đặt tên chứa một hoặc nhiều câu lệnh SQL sẽ được thực thi theo một hoặc nhiều khoảng thời gian thông thường, bắt đầu và kết thúc vào một ngày và thời gian cụ thể. Chấm dứt kết nối MySQL & nbsp; dựa trên đăng nhập người dùng & nbsp; sử dụng một sự kiện gọi quy trình được lưu trữPhương pháp 2. Tạo tệp BAT để khởi chạy máy khách MySQL và quy trình với các tham số
Bạn có thể chỉnh sửa cài đặt thời gian chờ để có trình nền MySQL tự giết các quy trình không hoạt động hoặc tăng số lượng kết nối. Bạn thậm chí có thể giới hạn số lượng kết nối trên mỗi tên người dùng, để nếu quá trình tiếp tục sai, quá trình bị ảnh hưởng duy nhất là chính quá trình và không có máy khách nào khác trên cơ sở dữ liệu của bạn bị khóa.CREATE PROCEDURE kill_process_proc()BEGINDECLARE kill_done int;DECLARE EXIT HANDLER FOR NOT FOUND SET kill_done = 1;BEGINDECLARE cursor_ID int;DECLARE cursor_i CURSOR FORSELECTidFROM information_schema.PROCESSLISTWHERE USER LIKE ‘test%’AND ID != CONNECTION_ID();OPEN cursor_i;read_loop:LOOPFETCH cursor_i INTO cursor_ID;KILL CONNECTION cursor_ID;IF kill_done THENLEAVE read_loop;END IF;END LOOP;CLOSE cursor_i;END;END$DELIMITER ;[/code] Bạn cần gán giá trị cần thiết cho tham số người dùng. Trong ví dụ của chúng tôi, đó là ‘thử nghiệm%. 2. Tiếp theo, sẵn sàng quy trình, bạn có thể tạo một sự kiện để gọi nó và thực hiện nó theo lịch trình. Xin vui lòng, hãy xem xét tập lệnh sau: [Code Lang = Hồi SQL,] Tạo DEFINER = 'root'@'LocalHost'event Sakila.Kill_Process_Eventon Lịch trình mỗi' 1 'Daystarts' 2019-03-19 14: 53: 00'Dobegincall Kill_Process_Process );CHẤM DỨT;[code lang=”SQL”]CREATE DEFINER = ‘root’@’localhost’EVENT sakila.kill_process_eventON SCHEDULE EVERY ‘1’ DAYSTARTS ‘2019-03-19 14:53:00’DOBEGINCALL kill_process_proc();END; Thay đổi sự kiện sakila.kill_process_eventenable; [/code]ENABLE;[/code] 3. Các bước tiếp theo • Gán các giá trị của riêng bạn cho các tham số cần thiết. Cụ thể, lịch trình, thời gian, cơ sở dữ liệu và đăng nhập người dùng• Schedule the event• Set the server variable event_scheduler = ON Sau khi thực hiện các bước trước, tất cả các kết nối với đăng nhập người dùng (‘kiểm tra%,) sẽ bị giết. Phương pháp 2. Tạo tệp BAT để khởi chạy máy khách MySQL và quy trình với các tham sốSử dụng Bạn có thể chỉnh sửa cài đặt thời gian chờ để có trình nền MySQL tự giết các quy trình không hoạt động hoặc tăng số lượng kết nối. Bạn thậm chí có thể giới hạn số lượng kết nối trên mỗi tên người dùng, để nếu quá trình tiếp tục sai, quá trình bị ảnh hưởng duy nhất là chính quá trình và không có máy khách nào khác trên cơ sở dữ liệu của bạn bị khóa.CREATE PROCEDURE kill_process_proc()BEGINDECLARE kill_done int;DECLARE EXIT HANDLER FOR NOT FOUND SET kill_done = 1;BEGINDECLARE cursor_ID int;DECLARE cursor_i CURSOR FORSELECTidFROM information_schema.PROCESSLISTWHERE USER LIKE ‘test%’AND ID != CONNECTION_ID();OPEN cursor_i;read_loop:LOOPFETCH cursor_i INTO cursor_ID;KILL CONNECTION cursor_ID;IF kill_done THENLEAVE read_loop;END IF;END LOOP;CLOSE cursor_i;END;END$DELIMITER ;[/code] Bạn cần gán giá trị cần thiết cho tham số người dùng. Trong ví dụ của chúng tôi, đó là ‘thử nghiệm%. 2. Tiếp theo, sẵn sàng quy trình, bạn có thể tạo một sự kiện để gọi nó và thực hiện nó theo lịch trình. Xin vui lòng, hãy xem xét tập lệnh sau: [Code Lang = Hồi SQL,] Tạo DEFINER = 'root'@'LocalHost'event Sakila.Kill_Process_Eventon Lịch trình mỗi' 1 'Daystarts' 2019-03-19 14: 53: 00'Dobegincall Kill_Process_Process );CHẤM DỨT;[code lang=”SQL”]CREATE DEFINER = ‘root’@’localhost’EVENT sakila.kill_process_eventON SCHEDULE EVERY ‘1’ DAYSTARTS ‘2019-03-19 14:53:00’DOBEGINCALL kill_process_proc();END; "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" --user= Thay đổi sự kiện sakila.kill_process_eventenable; [/code]ENABLE;[/code] 4. Lưu tệp với phần mở rộng .bat. Bây giờ, bạn cần chạy tệp dơi với tham số. Tất cả các kết nối với đăng nhập người dùng (‘kiểm tra%,) sẽ bị giết. Sự kết luậnBiết cách tiêu diệt một quy trình trong máy chủ MySQL có thể là một công cụ hữu ích để có trong hộp công cụ của bạn. Tuy nhiên, chúng tôi khuyên bạn nên sử dụng các phương pháp đã cho một cách tiết kiệm.
Kill Connection, MySQL, MySQL hiển thị các truy vấn chạy dài, studio cho mysql |