Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แสดงรายชื่อ User ที่ Login อยู่ใน MySQL ด้วย PROCESSLIST

บทความนี้แนะนำ 2 วิธีในการดูรายชื่อ User ที่เชื่อมต่ออยู่กับ MySQL Server ขณะนี้ (Current Connections)

วิธีที่ 1: ใช้ INFORMATION_SCHEMA.PROCESSLIST

mysql> SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;

ผลลัพธ์ตัวอย่าง

+----+-----------------+-----------------+------+---------+--------+-----------------------------+---------------------------------------------+
| ID | USER            | HOST            | DB   | COMMAND | TIME   | STATE                       | INFO                                        |
+----+-----------------+-----------------+------+---------+--------+-----------------------------+---------------------------------------------+
| 8  | root            | localhost:50252 | web  | Query   | 0      | executing                   | select * from information_schema.processlist |
| 4  | event_scheduler | localhost       | NULL | Daemon  | 301832 | Waiting for next activation | NULL                                        |
+----+-----------------+-----------------+------+---------+--------+-----------------------------+---------------------------------------------+

วิธีที่ 2: ใช้ SHOW PROCESSLIST (สั้นกว่า)

mysql> SHOW PROCESSLIST;

ผลลัพธ์ตัวอย่าง

+----+-----------------+-----------------+------+---------+--------+-----------------------------+------------------+
| Id | User            | Host            | db   | Command | Time   | State                       | Info             |
+----+-----------------+-----------------+------+---------+--------+-----------------------------+------------------+
| 4  | event_scheduler | localhost       | NULL | Daemon  | 301842 | Waiting for next activation | NULL             |
| 8  | root            | localhost:50252 | web  | Query   | 1      | starting                    | show processlist |
+----+-----------------+-----------------+------+---------+--------+-----------------------------+------------------+

คำอธิบายคอลัมน์สำคัญ:

  • ID - Connection ID (ใช้ KILL id เพื่อตัดการเชื่อมต่อ)
  • USER - ชื่อ User ที่ Login
  • HOST - IP/Port ของ Client
  • DB - Database ที่ใช้งานอยู่
  • COMMAND - สถานะคำสั่ง (Sleep, Query, Daemon, etc.)
  • TIME - วินาทีในสถานะปัจจุบัน
  • STATE - รายละเอียดสถานะ (executing, sending data, locked, etc.)
  • INFO - คำสั่ง SQL ที่กำลังรัน (ถ้ามี)

สิทธิ์: ต้องมีสิทธิ์ PROCESS ถึงจะเห็น Process ของ User อื่น (Superuser เห็นทั้งหมด)