Mostrar host MySQL via comando SQL


96
Show Database
Use database
show tables
Describe <table>

Tudo bem e bem, mas é possível mostrar as conexões atuais do host. Não connection_id, mas o endereço IP ou nome do host.

Respostas:


197

Para obter o nome do host atual: -

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

Para obter hosts para todas as solicitações de entrada: -

select host from information_schema.processlist;

Com base em seu último comentário,
não acho que você possa resolver o IP para o nome do host usando a função mysql pura,
pois isso requer uma pesquisa de rede, o que pode levar muito tempo.

No entanto, o documento mysql menciona isso: -

resolveip google.com.sg

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


Não tenho um host remoto para testar no ATM, mas "SELECT @@ hostname" fornece meu host local. Se a sessão MySQL estiver conectada a um host diferente, ela mostrará o nome do host remoto? Posso obter IP?
Craig Stewart

Sim, ele mostrará um host diferente se você vier de outro host. No entanto, resolver o IP correspondente é um pouco difícil ...
ajreal

É possível obter IP do My-SQL? Isso seria bom. Mais um voto para @@ Hostname, obrigado !! Aceitará se não for possível no IP
Craig Stewart

Usando a linha de comando, obtenha o IP do host remoto conectado atualmente no SQL. Razão, longevidade de um script Não posso ter 100% de certeza em meu código de que estamos conectados ao mesmo host !!
Craig Stewart

Malásia, mas Singapura PR.
ajreal


6

Acho que você tenta obter o host remoto do usuário conectado ...

Você pode obter uma String como 'myuser @ localhost' no comando:

SELECT USER()

Você pode dividir este resultado no sinal '@', para obter as 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)

se você estiver conectando via endereço IP, obterá o ipadress em vez do nome do host.


1
show variables where Variable_name='hostname'; 

Isso pode te ajudar !!


O meu interessante não retorna nada com isso.
Vitor Canova

Isso retorna o nome do host do servidor, não o nome do host do cliente para a conexão, conforme solicitado ...
Hartmut Holzgraefe
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.