Afficher l'hôte MySQL via la commande SQL


97
Show Database
Use database
show tables
Describe <table>

Tout va bien, mais est-il possible de montrer l'hôte des connexions actuelles. Pas connection_id, mais l'adresse IP ou le nom de l'hôte.

Réponses:


199

Pour obtenir le nom d'hôte actuel: -

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

Pour obtenir des hôtes pour toutes les demandes entrantes: -

select host from information_schema.processlist;

Sur la base de votre dernier commentaire,
je ne pense pas que vous puissiez résoudre l'IP du nom d'hôte en utilisant la fonction mysql pure,
car cela nécessite une recherche réseau, ce qui peut prendre beaucoup de temps.

Cependant, le document mysql mentionne ceci: -

resolveip google.com.sg

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


Je n'ai pas d'hôte distant à tester sur ATM, mais "SELECT @@ hostname" donne mon hôte local. Si la session MySQL est connectée à un hôte différent, affichera-t-elle le nom des hôtes distants? Puis-je obtenir une adresse IP?
Craig Stewart

Oui, il affichera un hôte différent si vous venez d'un autre hôte. Cependant, résoudre l'IP correspondante est un peu difficile ...
ajreal

Est-il possible d'obtenir une adresse IP depuis My-SQL? Ce serait génial. Un vote pour @@ Hostname, merci !! Acceptera sinon possible sur IP
Craig Stewart

À l'aide de la ligne de commande, obtenez l'adresse IP de l'hôte distant actuellement connecté dans SQL. Raison, longévité d'un script Je ne peux pas être sûr à 100% dans mon code que nous sommes connectés au même hôte !!
Craig Stewart

Malaisie, mais Singapour PR.
ajreal


6

Je pense que vous essayez d'obtenir l'hôte distant de l'utilisateur connecté ...

Vous pouvez obtenir une chaîne comme 'myuser @ localhost' à partir de la commande:

SELECT USER()

Vous pouvez diviser ce résultat sur le signe '@', pour obtenir les parties:

-- 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 vous connectez via l'adresse IP, vous obtiendrez l'ipadress au lieu du nom d'hôte.


1
show variables where Variable_name='hostname'; 

Cela pourrait vous aider !!


Le mien intéressant ne retourne rien avec ça.
Vitor Canova

Cela renvoie le nom d'hôte du serveur, pas le nom d'hôte du client pour la connexion, comme demandé ...
Hartmut Holzgraefe
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.