Tampilkan host MySQL melalui Perintah SQL

96
Show Database
Use database
show tables
Describe <table>

Semua baik dan baik, tetapi apakah mungkin untuk menunjukkan host koneksi saat ini. Bukan connection_id, tapi Alamat IP atau Nama host.

Craig Stewart
sumber

Jawaban:

197

Untuk mendapatkan nama host saat ini: -

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

Untuk mendapatkan host untuk semua permintaan masuk: -

select host from information_schema.processlist;

Berdasarkan komentar terakhir Anda,
saya rasa Anda tidak dapat menyelesaikan IP untuk nama host menggunakan fungsi mysql murni,
karena memerlukan pencarian jaringan, yang bisa memakan waktu lama.

Namun, dokumen mysql menyebutkan ini: -

resolveip google.com.sg

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

ajreal
sumber
Saya tidak memiliki host jarak jauh untuk diuji di ATM, tetapi "PILIH @@ nama host" memberikan host lokal saya. Jika sesi MySQL terhubung ke host yang berbeda, apakah itu akan menampilkan nama host jarak jauh? Bisakah saya mendapatkan IP?
Craig Stewart
Ya, ini akan menampilkan host yang berbeda jika Anda berasal dari host lain. Namun, untuk menyelesaikan IP yang sesuai agak sulit ...
ajreal
Apakah mungkin mendapatkan IP dari My-SQL? Itu akan bagus. Naik satu suara untuk @@ Nama Host, terima kasih !! Akan menerima jika tidak memungkinkan pada IP
Craig Stewart
Dengan menggunakan baris perintah, dapatkan IP host jarak jauh yang terhubung saat ini dalam SQL. Alasan, umur panjang skrip Saya tidak bisa 100% yakin dalam kode saya bahwa kita terhubung ke host yang sama !!
Craig Stewart
Malaysia, tapi PR Singapura.
ajreal
17

Mungkin

mysql> show processlist;
Adrian Cornish
sumber
1
Ini adalah saran yang buruk jika Anda mencoba mengakses dari jarak jauh.
Vijay Kumar Kanta
6

Saya pikir Anda mencoba untuk mendapatkan host jarak jauh dari pengguna yang terhubung ...

Anda bisa mendapatkan String seperti 'myuser @ localhost' dari perintah:

SELECT USER()

Anda dapat membagi hasil ini pada tanda '@', untuk mendapatkan bagian-bagiannya:

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

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

jika Anda terhubung melalui alamat ip Anda akan mendapatkan ipadress alih-alih nama host.

Radon8472
sumber
1
show variables where Variable_name='hostname'; 

Itu bisa membantumu !!

Gowtham Vakani
sumber
Saya menarik tidak mengembalikan apa-apa dengan ini.
Vitor Canova
Ini mengembalikan nama host server, bukan nama host klien untuk koneksi, seperti yang diminta ...
Hartmut Holzgraefe