ดูการเชื่อมต่อ MySQL ที่ใช้งานต่อผู้ใช้


9

ฉันต้องการแบบสอบถามที่จะให้จำนวนการเชื่อมต่อที่เปิดใช้งานหรือเปิดไปยังฐานข้อมูลเฉพาะสำหรับผู้ใช้บางราย ฉันค้นหามาหลายชั่วโมงแล้วก็หาอะไรไม่ได้แล้ว ฉันสนิทแล้วนี่คือสิ่งที่ฉันได้ลอง

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

  2. SHOW STATUS LIKE '%onn%';

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

ฉันทำงานให้กับ บริษัท ผู้ให้บริการเว็บโฮสติ้งและหนึ่งในลูกค้าของเรายังคงถึงmax_user_connectionsขีด จำกัด ดังนั้นในการแก้ไขปัญหาเหตุใดฉันจึงจำเป็นต้องรู้ว่ามีผู้ใช้ของเขาเชื่อมต่อกันกี่รายในขณะนี้เนื่องจากเขาไม่ใช่เซิร์ฟเวอร์ที่ใช้ร่วมกัน ฉันกำลังใช้ MySQL (InnoDB) รุ่น 5.5.36 ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก!

คำตอบ:


11

สิ่งที่คุณต้องการคือการแยกย่อยตามผู้ใช้และชื่อโฮสต์พร้อมกับผลรวม

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;

สิ่งนี้จะจัดการที่อยู่โฮสต์ที่มีเครื่องหมายโคลอนคั่นชื่อโฮสต์และหมายเลขพอร์ต

ฉันหวังว่าทุกคนจะไม่เข้าสู่ระบบในฐานะที่เป็นราก


-1

มีการอภิปรายรายละเอียดสำหรับสิ่งนี้: https://dba.stackexchange.com/a/47160/385

กล่าวโดยย่อแบบสอบถามที่คุณต้องการคือ

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

และ

SHOW VARIABLES LIKE 'max_user_connections';

UPDATE

อาจจะเป็นคำตอบที่ไม่ตรงกับคำถามของคุณ แต่ตามhttp://dev.mysql.com/doc/refman/5.5/en/user-resources.html MySQL ช่วยให้คุณสามารถ จำกัด จำนวนของการเข้าถึงต่อชั่วโมง ดังนั้นอาจเป็นคำตอบว่าทำไมผู้ใช้บางรายถึงขีด จำกัด ในขณะที่จำนวนการเชื่อมต่อของพวกเขามีขนาดเล็กตามรายการกระบวนการ น่าเสียดายที่ฉันไม่สามารถหาข้อมูลอ้างอิงเกี่ยวกับวิธีรับตัวนับการเข้าถึงได้


ฉันไม่ต้องการเปลี่ยนจำนวน max_user_connections หรือดู max_user_connections ฉันรู้วิธีการทำ ฉันต้องการดูจำนวนการเชื่อมต่อที่ผู้ใช้แต่ละรายใช้งานอยู่
Will Hughes
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.