Mostrar host MySQL a través del comando SQL


96
Show Database
Use database
show tables
Describe <table>

Todo bien y bien, pero ¿es posible mostrar las conexiones actuales del host? No connection_id, sino la dirección IP o el nombre del host.

Respuestas:


197

Para obtener el nombre de host actual: -

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

Para obtener hosts para todas las solicitudes entrantes: -

select host from information_schema.processlist;

Según su último comentario,
no creo que pueda resolver la IP para el nombre de host utilizando la función mysql pura,
ya que requiere una búsqueda de red, lo que podría llevar mucho tiempo.

Sin embargo, el documento mysql menciona esto: -

resolveip google.com.sg

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


No tengo un host remoto para probar en ATM, pero "SELECT @@ hostname" da mi host local. Si la sesión MySQL está conectada a un host diferente, ¿mostrará el nombre de los hosts remotos? ¿Puedo obtener IP?
Craig Stewart

Sí, mostrará un host diferente si vienes de otro host. Sin embargo, resolver la IP correspondiente es un poco difícil ...
ajreal

¿Es posible obtener IP de My-SQL? Eso seria genial. Un voto para @@ Hostname, ¡gracias! Aceptará si no es posible en IP
Craig Stewart

Usando la línea de comando, obtenga la IP del host remoto conectado actual dentro de SQL. Razón, longevidad de un script No puedo estar 100% seguro dentro de mi código de que estemos conectados al mismo host.
Craig Stewart

Malasia, pero RP de Singapur.
ajreal


6

Creo que intentas obtener el host remoto del usuario que se conecta ...

Puede obtener una cadena como 'myuser @ localhost' desde el comando:

SELECT USER()

Puede dividir este resultado en el signo '@' para obtener las partes:

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

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

si se conecta a través de una dirección IP, obtendrá la dirección IP en lugar del nombre de host.


1
show variables where Variable_name='hostname'; 

¡¡Eso podría ayudarte !!


Interesante la mía no devuelve nada con esto.
Vitor Canova

Esto devuelve el nombre de host del servidor, no el nombre de host del cliente para la conexión, como se solicitó ...
Hartmut Holzgraefe
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.