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.

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


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


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.


1
show variables where Variable_name='hostname'; 

Itu bisa membantumu !!


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.