Xem kết nối MySQL hoạt động trên mỗi người dùng


9

Tôi cần một truy vấn sẽ cung cấp cho tôi số lượng kết nối đang hoạt động hoặc mở tới một cơ sở dữ liệu nhất định cho một người dùng nhất định. Tôi đã tìm kiếm trong nhiều giờ và không tìm thấy gì cho đến nay. Tôi gần gũi, vì vậy đây là những gì tôi đã cố gắng.

  1. SHOW STATUS WHERE `variable_name` = 'Threads_connected';

  2. SHOW STATUS LIKE '%onn%';

  3. SELECT * FROM information_schema.processlist WHERE USER='database_user';

Tôi làm việc cho một công ty lưu trữ web và một trong những khách hàng của chúng tôi tiếp tục đạt max_user_connectionsgiới hạn của anh ấy , vì vậy, trong việc khắc phục sự cố tại sao tôi cần biết có bao nhiêu kết nối mà người dùng của anh ấy đang sử dụng ngay bây giờ vì anh ấy không phải là máy chủ dùng chung. Tôi hiện đang sử dụng MySQL (InnoDB) phiên bản 5.5.36. Mọi sự trợ giúp sẽ rất được trân trọng!

Câu trả lời:


11

Những gì bạn cần là một sự cố theo người dùng và tên máy chủ cùng với tổng số

SELECT IFNULL(usr,'All Users') user,IFNULL(hst,'All Hosts') host,COUNT(1) Connections
FROM
(
    SELECT user usr,LEFT(host,LOCATE(':',host) - 1) hst
    FROM information_schema.processlist
    WHERE user NOT IN ('system user','root')
) A GROUP BY usr,hst WITH ROLLUP;

Điều này sẽ xử lý địa chỉ máy chủ có tên máy chủ và số cổng phân cách

Tôi hy vọng mọi người không đăng nhập bằng root


-1

Có một cuộc thảo luận chi tiết cho việc này: https://dba.stackexchange.com/a/47160/385

Nói tóm lại, các truy vấn bạn cần là

SELECT max_user_connections FROM mysql.user WHERE user='db_user' AND host='localhost';

SHOW VARIABLES LIKE 'max_user_connections';

CẬP NHẬT

Có thể đây không phải là câu trả lời trực tiếp cho câu hỏi của bạn, nhưng theo http://dev.mysql.com/doc/refman/5.5/en/user-resource.html MySQL cho phép bạn giới hạn số lượng truy cập mỗi giờ . Vì vậy, có thể câu trả lời tại sao một người dùng nhất định đạt giới hạn trong khi số lượng kết nối của họ là nhỏ theo danh sách quy trình. Thật không may, tôi không thể tìm thấy tài liệu tham khảo về cách lấy bộ đếm truy cập.


Tôi không muốn thay đổi số lượng max_user_connections hoặc xem max_user_connections, tôi biết làm thế nào để làm điều đó. Tôi muốn xem có bao nhiêu kết nối mà một người dùng cụ thể đã kích hoạt.
Will Hughes
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.