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.