Mostra host MySQL tramite comando SQL


96
Show Database
Use database
show tables
Describe <table>

Tutto bene e bene, ma è possibile mostrare le connessioni correnti dell'host. Non connection_id, ma l'indirizzo IP o il nome dell'host.

Risposte:


197

Per ottenere il nome host corrente: -

select @@hostname;
show variables where Variable_name like '%host%';

Per ottenere host per tutte le richieste in arrivo: -

select host from information_schema.processlist;

Sulla base del tuo ultimo commento,
non penso che tu possa risolvere l'IP per il nome host usando la pura funzione mysql,
poiché richiede una ricerca di rete, che potrebbe richiedere molto tempo.

Tuttavia, il documento mysql menziona questo: -

resolveip google.com.sg

documenti: - http://dev.mysql.com/doc/refman/5.0/en/resolveip.html


Non ho un host remoto da testare su ATM, ma "SELECT @@ hostname" fornisce il mio host locale. Se la sessione MySQL è connessa a un host diverso, mostrerà il nome dell'host remoto? Posso ottenere l'IP?
Craig Stewart

Sì, mostrerà un host diverso se vieni da un altro host. Tuttavia, risolvere l'IP corrispondente è un po 'difficile ...
ajreal

È possibile ottenere l'IP da My-SQL? Sarebbe grandioso. Su un voto per @@ Hostname, grazie !! Accetterà se non possibile su IP
Craig Stewart

Utilizzando la riga di comando, ottenere l'IP host remoto connesso corrente all'interno di SQL. Motivo, longevità di uno script Non posso essere sicuro al 100% nel mio codice che siamo connessi allo stesso host !!
Craig Stewart,

Malese, ma Singapore PR.
Ajreal


6

Penso che tu provi a ottenere l'host remoto dell'utente che connette ...

Puoi ottenere una stringa come "myuser @ localhost" dal comando:

SELECT USER()

Puoi dividere questo risultato sul segno "@", per ottenere le parti:

-- delivers the "remote_host" e.g. "localhost" 
SELECT SUBSTRING_INDEX(USER(), '@', -1) 

-- delivers the user-name e.g. "myuser"
SELECT SUBSTRING_INDEX(USER(), '@', 1)

se si connette tramite indirizzo IP, verrà visualizzato l'indirizzo ip invece del nome host.


1
show variables where Variable_name='hostname'; 

Questo potrebbe aiutarti !!


Il mio interessante non restituisce nulla con questo.
Vitor Canova

Questo restituisce il nome host del server, non il nome host del client per la connessione, come richiesto ...
Hartmut Holzgraefe,
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.