Visualizza le connessioni MySQL attive per utente


9

Ho bisogno di una query che mi dia il numero attivo o aperto di connessioni a un determinato database per un determinato utente. Ho cercato per ore e finora non ho trovato nulla. Sono vicino, quindi ecco quello che ho provato.

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

  2. SHOW STATUS LIKE '%onn%';

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

Lavoro per una società di web hosting e uno dei nostri clienti continua a rispettare il suo max_user_connectionslimite, quindi nella risoluzione dei problemi ho bisogno di sapere quante connessioni sta usando il suo utente in questo momento poiché non è un server condiviso. Attualmente sto usando MySQL (InnoDB) versione 5.5.36. Qualsiasi aiuto sarebbe molto apprezzato!

Risposte:


11

Ciò di cui hai bisogno è una suddivisione per utente e nome host insieme a un totale

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;

Questo gestirà l'indirizzo host con due punti che separano nome host e numero porta

Spero che tutti non accedano come root


-1

C'è stata una discussione in dettaglio per questo: https://dba.stackexchange.com/a/47160/385

In breve, le domande che ti servono sono

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

e

SHOW VARIABLES LIKE 'max_user_connections';

AGGIORNARE

Forse questa non è una risposta diretta alla tua domanda, ma secondo http://dev.mysql.com/doc/refman/5.5/en/user-resources.html MySQL ti consente di limitare il numero di accessi all'ora . Quindi, forse questo risponde al motivo per cui un determinato utente raggiunge il limite mentre il numero di connessioni è piccolo in base all'elenco dei processi. Sfortunatamente, non riesco a trovare riferimenti su come ottenere il contatore degli accessi.


Non voglio cambiare il numero di max_user_connections o visualizzare max_user_connections, so come farlo. Voglio vedere quante di queste connessioni ha un utente specifico attivo.
Will Hughes,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.