2011-11-27 8 views
69
Show Database 
Use database 
show tables 
Describe <table> 

सभी अच्छे और अच्छे के माध्यम से MySQL होस्ट दिखाएं, लेकिन मौजूदा कनेक्शन होस्ट को दिखाना संभव है। कनेक्शन_आईडी नहीं, लेकिन मेजबान का आईपी पता या नाम।SQL कमांड

उत्तर

139

वर्तमान होस्ट नाम प्राप्त करने के लिए: -

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

आने वाले सभी अनुरोधों के लिए मेजबान प्राप्त करने के लिए: -

select host from information_schema.processlist; 

अपने अंतिम टिप्पणी के आधार पर,
मैं तुम्हें हल कर सकते हैं नहीं लगता है शुद्ध mysql फ़ंक्शन का उपयोग कर होस्टनाम के लिए आईपी,
क्योंकि इसे नेटवर्क लुकअप की आवश्यकता होती है, जो लंबे समय तक लग सकता है।

हालांकि, mysql दस्तावेज़ यह उल्लेख: -

resolveip google.com.sg 

डॉक्स: - http://dev.mysql.com/doc/refman/5.0/en/resolveip.html

+0

मेरे पास एटीएम पर परीक्षण करने के लिए रिमोट होस्ट नहीं है, लेकिन "SELECT @@ hostname" मेरे स्थानीय होस्ट को देता है। यदि MySQL सत्र किसी भिन्न होस्ट से कनेक्ट होता है तो क्या यह दूरस्थ होस्ट नाम दिखाएगा? क्या मुझे आईपी मिल सकती है? –

+0

हां, यदि आप अन्य होस्ट से आते हैं तो यह अलग मेजबान दिखाएगा। हालांकि, संबंधित आईपी को हल करने के लिए थोड़ा मुश्किल है ... – ajreal

+0

क्या आई-एसक्यूएल से आईपी प्राप्त करना संभव है? वह महान होगा। @@ होस्टनाम के लिए एक वोट ऊपर, धन्यवाद !! आईपी ​​ –

16

शायद

mysql> show processlist; 
+1

से चलाएं, यदि आप दूरस्थ रूप से पहुंचने का प्रयास कर रहे हैं तो यह एक बुरा सुझाव है। –

2

मुझे लगता है कि आप conneting उपयोगकर्ता के दूरस्थ होस्ट प्राप्त करने की कोशिश ..

आप आदेश से 'myuser @ localhost' जैसे स्ट्रिंग प्राप्त कर सकते हैं:

SELECT USER() 

आप '@' चिह्न में इस परिणाम को विभाजित कर सकते हैं, भागों पाने के लिए:

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

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

यदि आप आईपी पते के माध्यम से कर रहे हैं conneting आप होस्ट नाम के बजाय ipadress मिल जाएगा।

0
show variables where Variable_name='hostname'; 

इससे आपकी मदद मिल सकती है !!