SQL 명령을 통해 MySQL 호스트 표시


97
Show Database
Use database
show tables
Describe <table>

모두 훌륭하지만 현재 연결 호스트를 표시 할 수 있습니다. connection_id가 아니라 호스트의 IP 주소 또는 이름입니다.

답변:


199

현재 호스트 이름을 얻으려면 :-

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

들어오는 모든 요청에 ​​대한 호스트를 얻으려면 :-

select host from information_schema.processlist;

귀하의 마지막 의견에 따르면
순수한 mysql 함수를 사용하여 호스트 이름에 대한 IP를 확인할 수 없다고 생각
합니다. 네트워크 조회가 필요하기 때문에 시간이 오래 걸릴 수 있습니다.

그러나 mysql 문서는 이것을 언급합니다.

resolveip google.com.sg

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


ATM에서 테스트 할 원격 호스트가 없지만 "SELECT @@ hostname"은 내 로컬 호스트를 제공합니다. MySQL 세션이 다른 호스트에 연결되어 있으면 원격 호스트 이름이 표시됩니까? IP를받을 수 있습니까?
Craig Stewart

예, 다른 호스트에서 온 경우 다른 호스트를 표시합니다. 그러나 해당 IP를 해결하는 것은 조금 어렵습니다 ...
ajreal 2011

My-SQL에서 IP를 얻을 수 있습니까? 그것은 좋을 것입니다. @@ Hostname에 한 표를 올려 주셔서 감사합니다 !! IP에 가능하지 않을 경우 받아 들일 것
크레이그 스튜어트

명령 줄을 사용하여 SQL 내에서 현재 연결된 원격 호스트 IP를 가져옵니다. 이유, 스크립트의 수명은 동일한 호스트에 연결되어 있는지 내 코드 내에서 100 % 확신 할 수 없습니다 !!
Craig Stewart

말레이시아이지만 싱가포르 PR.
ajreal


6

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)

IP 주소를 통해 연결하는 경우 호스트 이름 대신 ipadress를 받게됩니다.


1
show variables where Variable_name='hostname'; 

그것은 당신을 도울 수 있습니다!


흥미로운 광산은 이것으로 아무것도 반환하지 않습니다.
Vitor Canova

요청한대로 연결에 대한 클라이언트 호스트 이름이 아닌 서버 호스트 이름을 반환합니다.
Hartmut Holzgraefe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.