Tutorial MySQL ini menjelaskan Cara Menemukan Users yang masuk (logged) ke dalam MySQL di MySQL dengan contoh.
Penjelasan
Jika teman-teman bertanya, apakah kita bisa mengetahui siapa saja yang masuk (logged) ke dalam MySQL dan yang siapa saja yang menggunakan MySQL? Jawabannya adalah bisa!
Di MySQL, ada tabel sistem yang disebut information_schema.processlist yang menunjukkan untaian yang sedang berjalan. Anda dapat menjalankan kueri terhadap tabel sistem ini yang mengembalikan semua Pengguna yang saat ini memiliki koneksi yang berjalan di database MySQL.
Untuk mengambil semua Pengguna yang masuk ke MySQL, Teman-teman dapat menjalankan pernyataan SQL berikut:
|
1 2 3 4 5 6 |
SELECT SUBSTRING_INDEX(host, ':', 1) AS host_short, GROUP_CONCAT(DISTINCT user) AS users, COUNT(*) AS threads FROM information_schema.processlist GROUP BY host_short ORDER BY COUNT(*), host_short; |
Pernyataan MySQL SELECT ini akan mengembalikan host, pengguna , dan jumlah user untuk kombinasi host / pengguna tersebut.
Catatan
- Anda harus memiliki hak istimewa PROCESS untuk melihat untaian yang dimiliki oleh pengguna lain. Jika tidak, Anda hanya akan melihat utas Anda sendiri.
- Tabel sistem information_schema.processlist diperkenalkan di MySQL 5.1.7.
Tabel information_schema.processlist berisi kolom-kolom berikut:
| Kolom-kolom | Penjelasan |
|---|---|
| ID | Unique identifier |
| USER | User name (ie: root, techonthenet, etc) |
| HOST | Host for the user |
| DB | Database yang sedang berjalan |
| COMMAND | Perintah yang sedang dijalankan (yaitu: Query, Sleep, dll). |
| TIME | Waktu sudah berapa lama berjalan dalam detik (mis.: 3, 12, 353) |
| STATE | Status users (yaitu: mengeksekusi) |
| INFO | Menampilkan informasi tentang user. (ie: if COMMAND=’Query’ and STATE=’executing’, SQL yang dijalankan pengguna akan ditampilkan) |