Hướng dẫn kill all connections to a database mysql - hủy tất cả các kết nối đến một cơ sở dữ liệu 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).

Sử dụng SHOW PROCESSLIST để xem tất cả các kết nối và KILL ID quy trình bạn muốn giết.

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 SUPER. Trừ khi quá trình vi phạm của bạn là vì một số lý do sử dụng tên người dùng với đặc quyền đó ...SUPER privilege. Unless your offending process is for some reason using a username with that privilege...

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.

Tôi đã mở quá nhiều kết nối với MySQL và bây giờ tôi không thể truy cập nó. Nó nói "Quá nhiều kết nối". Làm thế nào tôi có thể đóng tất cả các kết nối này? Tôi cũng không biết làm thế nào để khởi động lại nó, điều này có thể giải quyết vấn đề.

Falcon Momot

25K13 Huy hiệu vàng61 Huy hiệu bạc92 Huy hiệu Đồng13 gold badges61 silver badges92 bronze badges

Đã hỏi ngày 23 tháng 4 năm 2011 lúc 17:19Apr 23, 2011 at 17:19

3

Tôi đã trả lời câu hỏi này về các kết nối DB giết chết hàng loạt trong DBA Stackexchange vào tháng 5 năm 2011.

Điều gì có thể cho phép một người đăng nhập vào MySQL trong điều kiện căng thẳng như vậy? Câu trả lời khá đơn giản: Đừng cho mọi người siêu đặc quyền !!!

Tại sao siêu đặc quyền?

Theo tài liệu MySQL:MySQL Documentation:

Siêu đặc quyền cho phép một tài khoản sử dụng Change Master, Giết hoặc Mysqladmin Kill để tiêu diệt các chủ đề thuộc về các tài khoản khác (bạn luôn có thể giết chủ đề của riêng mình), thanh lọc nhật ký nhị phân, thay đổi cấu hình bằng cách sử dụng Global Global để sửa đổi các biến hệ thống toàn cầu, MySQLadmin Lệnh gỡ lỗi, bật hoặc tắt ghi nhật ký, thực hiện cập nhật ngay cả khi biến hệ thống read_only được bật, bắt đầu và dừng sao chép trên các máy chủ nô lệ, đặc điểm kỹ thuật của bất kỳ tài khoản nào trong thuộc tính Definer của các chương trình và chế độ xem được lưu trữ và cho phép bạn kết nối (một lần) Nếu giới hạn kết nối được kiểm soát bởi biến hệ thống MAX_CONNONSENTS.

Trong điều này, các kết nối khách hàng thường xuyên không nên có siêu đặc quyền. Khi số lượng kết nối DB đạt được = max_connections, chỉ có một kết nối nữa sẽ được phép và một kết nối đó phải có siêu đặc quyền. Nếu tất cả mọi người và bà của anh ta có siêu đặc quyền, tất cả các cược đã tắt và không ai có thể đăng nhập.

Hướng dẫn kill all connections to a database mysql - hủy tất cả các kết nối đến một cơ sở dữ liệu mysql

Đã trả lời ngày 7 tháng 10 năm 2011 lúc 15:29Oct 7, 2011 at 15:29

Hướng dẫn kill all connections to a database mysql - hủy tất cả các kết nối đến một cơ sở dữ liệu mysql

RolandomysqldbarolandomysqldbaRolandoMySQLDBA

16.4K3 Huy hiệu vàng47 Huy hiệu bạc80 Huy hiệu Đồng3 gold badges47 silver badges80 bronze badges

Bạn có ba tùy chọn sau:

  1. Bắt đầu -> Chạy -> Dịch vụ.msc Tìm MySQL, Rightclick và chọn Khởi động lại
    Find MySQL, rightclick and choose restart

  2. Bắt đầu -> Chạy -> CMD NET Dừng MySQL Nhập NET Bắt đầu MySQL Enter
    net stop MySQL enter
    net start MySQL enter

  3. Giết tất cả các trường hợp của mysqld.exe trong TaskPanel. (không được khuyến khích)

Kyle

1.5899 huy hiệu bạc14 Huy hiệu đồng9 silver badges14 bronze badges

Đã trả lời ngày 23 tháng 4 năm 2011 lúc 22:18Apr 23, 2011 at 22:18

Hướng dẫn kill all connections to a database mysql - hủy tất cả các kết nối đến một cơ sở dữ liệu mysql

JohanjohanJohan

3123 Huy hiệu bạc13 Huy hiệu Đồng3 silver badges13 bronze badges

Nếu bạn có quyền truy cập vào máy chủ của mình, hãy khởi động lại MySQL. Nếu bạn không có quyền truy cập vào máy chủ của mình, chỉ cần chờ đợi.

Đã trả lời ngày 23 tháng 4 năm 2011 lúc 17:21Apr 23, 2011 at 17:21

7

Một số ứng dụng web sẽ luôn báo cáo "quá nhiều kết nối" nếu chúng không thể kết nối với cơ sở dữ liệu. Nếu bạn đang gặp lỗi này ngay cả sau khi khởi động lại MySQL thì lỗi thực sự có lẽ là "không kết nối". Hãy thử kết nối với MySQL một số cách khác, dòng lệnh, phpmydmin hoặc trang web điều khiển MySQL khác trên cùng một máy chủ.

Nếu bạn có thể kết nối với MySQL thông qua các phương tiện thay thế, hãy kiểm tra chuỗi kết nối trong trang web của bạn (bit cung cấp tên người dùng và mật khẩu cho MySQL), hãy kết nối với các thông tin đó, có thể đã thay đổi một cái gì đó nhưng không được cập nhật trong tập lệnh.

Nếu bạn hoàn toàn không thể kết nối với MySQL và khởi động lại MySQL không sửa nó thì bạn sẽ cần xem nhật ký sự kiện của mình (bạn nói rằng đó là Windows Server trong một bình luận). Khởi động lại máy chủ là một phím tắt sẽ loại trừ nhiều vấn đề, cũng kiểm tra không có không gian của bạn.

Đã trả lời ngày 23 tháng 4 năm 2011 lúc 23:14Apr 23, 2011 at 23:14

Ollybeeollybeeollybee

5682 Huy hiệu bạc10 Huy hiệu đồng2 silver badges10 bronze badges

Tôi đã giải quyết nó! Đó là một sai lầm trong mã C#, trong đó tôi vô tình lặp lại "Connection.open ()". -.-

Class1 đã nói 'hey class2, mở kết nối!' và Class2 đã trả lời 'kết nối đã mở! Bây giờ hãy mở một kết nối, Class1! '. Sau đó, Class1 đã mở một kết nối và nói với Class2 'Mở kết nối quá!' Và SOOOO trên ...

Tôi xin lỗi vì sự ngu ngốc, tôi đã không nhận ra về điều đó -.-

3 ngày bị mắc kẹt (y)

Cheers!

Đã trả lời ngày 24 tháng 4 năm 2011 lúc 14:35Apr 24, 2011 at 14:35

LucaslucasLucas

1611 huy hiệu vàng1 huy hiệu bạc2 huy hiệu đồng1 gold badge1 silver badge2 bronze badges

1

Bạn sẽ có thể vào MySQL với người dùng gốc. Từ đó bạn có thể chạy một "Danh sách xử lý". Sau đó, bạn có thể chạy giết 'id' để giết các kết nối.
From there you can run a "show processlist". You can then run kill 'Id' to kill the connections.

Đã trả lời ngày 7 tháng 10 năm 2011 lúc 18:27Oct 7, 2011 at 18:27

Làm thế nào giết tất cả các kết nối DB 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.

Làm thế nào để bạn giết một kết nối cơ sở dữ liệu?

Có nhiều hơn một cách để tiêu diệt kết nối cơ sở dữ liệu..
Tùy chọn 1: Cách tiếp cận đơn giản nhưng không đủ: ngoại tuyến cơ sở dữ liệu ..
Tùy chọn 2: SQL động để tiêu diệt tất cả các phiên người dùng cho cơ sở dữ liệu ..
Tùy chọn 3: Thay đổi cơ sở dữ liệu thành SINGLE_USER hoặc RESTRICES_USER ..
Cân nhắc bổ sung ..

Làm cách nào để giết một chủ đề mysql?

Bạn có thể giết một chủ đề bằng câu lệnh Kill ProcessList_id.Các định danh danh sách xử lý luồng có thể được xác định từ cột ID của bảng Danh sách xử lý thông tin_Schema, cột ID của đầu ra danh sách xử lý hiển thị và cột Districle_id của bảng chủ đề Lược đồ hiệu suất.KILL processlist_id statement. Thread processlist identifiers can be determined from the ID column of the INFORMATION_SCHEMA PROCESSLIST table, the Id column of SHOW PROCESSLIST output, and the PROCESSLIST_ID column of the Performance Schema threads table.

Làm thế nào để bạn đóng cơ sở dữ liệu MySQL?

Hàm đóng () / mysqli_close () đóng kết nối cơ sở dữ liệu đã mở trước đó.close() / mysqli_close() function closes a previously opened database connection.