[Linix]mysql 사용자 접속 현황 확인하는 방법

MySQL 데이터베이스 관리자나 개발자라면, 데이터베이스에 접속 중인 사용자들의 현황을 파악하는 것이 중요합니다. 실시간으로 사용자 접속 현황을 모니터링하면 시스템의 성능을 최적화하고, 잠재적인 문제를 사전에 발견할 수 있습니다. 이번에는 MySQL 사용자 접속 현황을 확인하는 세 가지 방법을 소개하겠습니다.

1. SHOW PROCESSLIST 명령어 사용

MySQL 콘솔에 접속한 후, 가장 간단하고 직관적인 방법은 SHOW PROCESSLIST 명령어를 사용하는 것입니다.

이 명령어는 현재 MySQL 서버에 접속한 모든 사용자 세션과 각 세션에서 실행 중인 쿼리를 보여줍니다.

MySQL 서버에 접속한 모든 사용자 세션과 각 세션에서 실행 중인 쿼리를 보여줍니다.
> SHOW PROCESSLIST;

이 명령어를 실행하면, Id, User, Host, db, Command, Time, State, Info 등의 컬럼을 통해 각 세션의 상세 정보를 확인할 수 있습니다. 특히, User 컬럼은 해당 세션을 시작한 사용자의 이름을, Info 컬럼은 현재 실행 중인 SQL 쿼리를 보여줍니다.


2. mysqladmin processlist 명령어 사용

명령어 라인에서 MySQL 서버의 상태를 빠르게 확인하고 싶다면, mysqladmin 유틸리티를 사용하는 방법도 있습니다. mysqladmin은 MySQL 서버 관리를 위한 명령어 라인 툴입니다. 사용자 접속 현황을 확인하기 위해서는 다음과 같이 processlist 옵션을 사용합니다.

mysqladmin processlist
# mysqladmin -u root -p processlist

이 명령어를 실행하면, SHOW PROCESSLIST와 유사한 정보를 더 빠르고 간단한 형태로 확인할 수 있습니다. -u 옵션 뒤에는 MySQL 사용자 이름을, -p 옵션을 추가하면 비밀번호 입력을 요구합니다.


3. INFORMATION_SCHEMA.PROCESSLIST 테이블 조회

더 상세한 정보가 필요하거나, 특정 조건에 맞는 세션 정보만 필터링하고 싶다면 INFORMATION_SCHEMA.PROCESSLIST 테이블을 직접 조회하는 방법을 사용할 수 있습니다. SQL 쿼리를 통해 특정 사용자의 접속 현황이나, 특정 DB에 접속한 세션 정보만 추출할 수 있습니다.

SQL 쿼리를 통해 특정 사용자의 접속 현황이나, 특정 DB에 접속한 세션 정보만 추출
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE User = '특정사용자';

이 쿼리는 ‘특정사용자’가 현재 실행 중인 모든 세션 정보를 반환합니다. INFORMATION_SCHEMA.PROCESSLIST 테이블을 조회하면, SHOW PROCESSLIST 명령어보다 더 유연한 정보 접근이 가능합니다.

By Low ahn

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다