모든 mysql 쿼리를 로그 파일에 기록하는 방법?


17

Wamp 서버 환경에서 Mysql 5.6.12를 사용하고 있습니다. 이제 모든 쿼리를 ".log"파일, PHP 또는 PHPMyAdmin에서 실행중인 쿼리에 로그하고 싶습니다. 로그하고 싶습니다 ...

답변:


20
[mysqld]
# Set Slow Query Log
long_query_time = 1
slow_query_log = 1
slow_query_log_file = /usr/log/slowquery.log
log_queries_not_using_indexes = 1

#Set General Log
general_log = on
general_log_file=/usr/log/general.log

general_log프로덕션 서버에서 사용 하도록 설정 하면 오버 헤드가 발생하지 않아야합니다. 에서 문제가있는 검색어를 확인할 수 있습니다 slow log.


1
나를 위해 "general_log = on"대신 "general_log = 1"을 사용해야했습니다.
GuyPaddock

mysql 5.6.7을 사용하여 Wamp Server에서 작업했습니다. 내가 변경해야 할 유일한 것은 tje 파일의 경로였습니다. 필자의 경우 C : \ wamp \ logs \ mysql_query.log입니다.
Mário Rodrigues

이 모든 구성 값이 왜 필요한가요? 단지 general_log와는 general_log_file충분하다.
laurent

8

이것은 아마도 일시적으로만하고 싶은 유형이기 때문에 구성 파일 대신 쉘 에서이 작업을 수행하는 것이 유용 할 수 있습니다.

> set global general_log_file = "/var/log/mysql/queries.log";
> set global general_log = "ON";
[wait some time, hit some pages, whatever]
> set global general_log = "OFF";

5

이 두 줄을 my.cnf에 넣으십시오.

[mysqld]

general_log     = on
general_log_file=/users/ugrad/linehanp/mydb/logfile.txt

이것은 기록합니다 PHP / PHPMyAdmin뿐만 아니라 모든 소스에서 서버로 모든 쿼리를 합니다 .

일반 로그를 사용하면 서버에 많은 부하가 발생할 수 있으므로주의하십시오. 단기간 / 디버깅 용으로 만 사용하십시오.

설명서는 여기에서 볼 수 있습니다 . 거기에서 :

일반 조회 로그를 사용 불가능하게하거나 사용 가능하게하거나 런타임시 로그 파일 이름을 변경하려면 글로벌 general_log 및 general_log_file 시스템 변수를 사용하십시오. 로그를 비활성화하려면 general_log를 0 (또는 OFF)으로 설정하고 활성화하려면 1 (또는 ON)로 설정하십시오. 로그 파일의 이름을 지정하려면 general_log_file을 설정하십시오.

그래서,

general_log     = on

general_log     = 1

동의어입니다!


나를 위해 "general_log = on"대신 "general_log = 1"을 사용해야했습니다.
GuyPaddock

@GuyPaddock 어떤 버전의 MySQL을 사용하고 있습니까?
Vérace
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.