답변:
나는 어떤 사람들이 그 질문을 이해하지 못한다고 생각합니다 (또는 나는하지 않습니다). DB에 대해 쿼리를 기록하고 싶지 않습니다. 오히려 응용 프로그램의 로그가 DB로 이동합니다. 파일 인 경우 로그를 추적 할 수 있습니다. 새로운 행이 추가 될 때 테이블이 출력되도록 테이블을 어떻게 테일링합니까?
시간이 지남에 따라 단조 증가하는 고유 필드 (예 : 시퀀스 번호)가 있다고 가정하면이를 처리하기 위해 간단한 루프를 작성하는 것이 어렵지 않아야합니다.
current_pos = select max(seq) from table
while true
new_pos = select max(seq) from table
if new_pos > current_pos
select * from table where seq > current_pos
current_pos = new_pos
endif
sleep 1
endwhile
많은 사람들이 귀하의 질문을 이해하지 못하는 것 같습니다. 표준 MySQL 용어가 아닌 "logging database" 는 무엇을 의미합니까?
클라이언트로부터받은 각 문장을 기록 하는 MySQL General Query Log를 사용하십시오 .
그런 다음 my.cnf에서 log_output = TABLE 을 설정할 수 있습니다 . 파일은 $ mysql_data_directory / general_log.CSV에 작성됩니다. tail -f
이 파일을 사용하여 실시간으로 쿼리를 볼 수 있습니다 .
이것을 시도하고 싶을 수도 있습니다.
http://www.jetprofiler.com/blog/10/tail--f-table-with-myterm/#comments
그것은 오래되었고 3 년 동안 만지지 않았지만 방금 시도해 보았지만 정상적으로 작동합니다. BZR 저장소를 복제하고 README를 읽으십시오.