MySQL ana bilgisayarını SQL Command aracılığıyla göster


98
Show Database
Use database
show tables
Describe <table>

Hepsi iyi ve iyi, ancak mevcut bağlantıların ana bilgisayarını göstermek mümkün mü. Connection_id değil, ana bilgisayarın IP Adresi veya Adı.

Yanıtlar:


203

Mevcut ana bilgisayar adını almak için: -

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

Tüm gelen istekler için ana bilgisayarlar almak için: -

select host from information_schema.processlist;

Son yorumunuza dayanarak, uzun zaman alabilecek bir ağ araması gerektirdiğinden
, saf mysql işlevi kullanarak ana bilgisayar adı için IP'yi çözebileceğinizi sanmıyorum
.

Ancak, mysql belgesi bundan bahsediyor: -

resolveip google.com.sg

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


ATM'de test etmek için uzak bir ana bilgisayarım yok, ancak "SELECT @@ ana bilgisayar adı" yerel ana makineme veriyor. MySQL oturumu farklı bir ana bilgisayara bağlıysa, uzaktaki ana bilgisayarın adını gösterir mi? IP alabilir miyim?
Craig Stewart

Evet, başka bir ana bilgisayardan geliyorsanız farklı bir ana bilgisayar gösterecektir. Ancak, karşılık gelen IP'yi çözmek biraz zor ...
ajreal

My-SQL'den IP almak mümkün mü? Bu harika olurdu. @@ Hostname için bir oy, teşekkürler !! IP üzerinde mümkün değilse kabul edecek
Craig Stewart

Komut satırını kullanarak, SQL içinde mevcut bağlı uzak ana bilgisayar IP'sini alın. Nedeni, bir komut dosyasının uzun ömürlü olması Kodumda aynı ana bilgisayara bağlı olduğumuzdan% 100 emin olamıyorum !!
Craig Stewart

Malezya, ancak Singapur Halkla İlişkiler.
ajreal


6

Sanırım bağlanan kullanıcının uzaktaki ana bilgisayarını almaya çalışıyorsun ...

Komuttan 'myuser @ localhost' gibi bir String elde edebilirsiniz:

SELECT USER()

Parçaları almak için bu sonucu '@' işaretine bölebilirsiniz:

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

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

ip adresi üzerinden bağlanıyorsanız, ana bilgisayar adı yerine ipadress'i alacaksınız.


1
show variables where Variable_name='hostname'; 

Bu sana yardımcı olabilir !!


İlginç benim bununla hiçbir şey döndürmez.
Vitor Canova

Bu, istendiği gibi bağlantı için istemci ana bilgisayar adını değil, sunucu ana bilgisayar adını döndürür ...
Hartmut Holzgraefe
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.