MySQL  에서 실시간으로 쿼리(Query)를 추적할 수 있는 방법은 없을까?

많은 개발자 혹은 서버 관리자들이 궁금해하는 질문입니다.

단순히 몇 가지 설정만으로 쿼리를 실시간으로 모니터링하는 것이 가능합니다.

MySQL 에 root 로 로그인합니다.

general_log(query log) 상태를 확인합니다.

  • general log 란 MySQL 에서 실행되는 전체 쿼리에 대한 로그이며, general log 를 활성화하면 MySQL 이 쿼리 요청을 받을 때 즉시 general log 에 기록합니다.

1

 

 

 

 

 

general_log(query log) 를 활성화합니다.

mysql> set global general_log=on;
Query OK, 0 rows affected (0.00 sec)

general_log(query log) ‘ON’ 상태를 확인합니다.(mysql 재시작 필요 없음)

  • general_log_file의 기본 경로에서 실시간으로 입력되는 쿼리 로그를 확인할 수 있습니다.

2

 

 

 

 

 

경로를 바꾸려면 다음과 같이 입력합니다. (경로를 변경하게 되면 mysql 을 재시작해야 합니다.)

  • [mysqld]에 아래의 2줄을 삽입합니다.
  • 0은 비활성, 1은 활성을 의미합니다.

# vi /etc/my.cnf [mysqld]general_log_file  = /var/log/general.log  ⇐ 변경할 경로 입력
general_log  = 1

변경된 경로를 적용한 후 mysql 을 재시작합니다.

# touch /var/log/general.log

# chown mysql.mysql /var/log/general.log

# /etc/init.d/mysqld restart

실시간으로 query log의 상세 내역을 확인할 수 있습니다.

# tail -f /var/log/general.log 160504 17:56:44    3 Query show variables like ‘general%
160504 18:02:44    3 Query show VARIABLES where variable_name like ‘%log%’

160504 18:03:02    3 Query show VARIABLES where variable_name like ‘%log%
160504 18:03:31   3 Quit

[출처]

쿼리로그 활성화:

http://stackoverflow.com/questions/19834997/how-to-see-the-querie-logs-of-mysql-in-windows-8-1/19835171#19835171

http://crowz.co.kr/60

 

 

 

PLURA