MySQL 서버에 연결하는 tcpdump(또는 다른 캡처 도구)를 통해 사용자 이름과 IP 주소를 가져옵니다.

MySQL 서버에 연결하는 tcpdump(또는 다른 캡처 도구)를 통해 사용자 이름과 IP 주소를 가져옵니다.

Ubuntu 서버에 MySQL을 설치했습니다. 현재 MySQL에서 활동 중인 사용자를 정리하고 싶기 때문에 먼저 어떤 사용자와 어떤 호스트에서 MySQL 서버에 연결하고 있는지 확인하고 싶습니다.

나에게 필요한 유일한 것은 어떤 호스트가 연결되고 어떤 사용자 이름이 사용되는지입니다.

나는 tcpdump를 사용하여 이 작업을 수행하려고 시도했지만 지금까지는 운이 없었습니다. 전체 쿼리를 얻는 것은 쉬워 보이지만 위에서 언급한 정보를 얻지 못합니다. 서버를 많이 사용하므로 다른 옵션이 없으면 일반 쿼리 로그를 활성화할 수 있지만 가능하다면 이 옵션을 방지하고 싶습니다.

이 작업을 수행하는 방법에 대한 팁을 제공할 수 있는 사람이 있습니까?

답변1

  1. 현재 활성 세션 나열

mysql 프롬프트에서 현재 활성 세션을 표시하기 위해 다음을 입력할 수 있습니다:

mysql> show processlist;

또는 다음 mysql 쿼리(동일한 정보를 반환함):

mysql> select * from information_schema.processlist;

그리고 다음과 같이 {user,host} 쌍만 얻을 수 있습니다.

mysql> select User,Host from information_schema.processlist;
  1. 쿼리 기록을 기록하고 표시합니다.

MySQL 쿼리 로그 켜기

set global log_output = 'table';
set global general_log = 'on';

실행된 쿼리 모두 보기

select * from mysql.general_log;

타임스탬프, host_user 및 관련 쿼리를 확인하세요.

select event_time,user_host,argument from mysql.general_log;

도움이 되길 바랍니다.

관련 정보