이전에 실행한 MySQL 쿼리 목록을 라이브 피드 형식으로 보는 방법은 무엇입니까?

이전에 실행한 MySQL 쿼리 목록을 라이브 피드 형식으로 보는 방법은 무엇입니까?

MySQL에서 마지막으로 실행된 쿼리를 라이브 피드 형식으로 보려면 어떻게 해야 합니까?

터미널 창을 열어두고 뭔가가 실행될 때마다 MySQL 쿼리가 화면에 팝업되도록 하고 싶습니다. tail 명령을 사용하여 수행할 수 있다는 것을 알고 있지만 MySQL 로그가 어디에 저장되어 있는지 잘 모르겠습니다. mysqladmin proc도 수행할 수 있지만 연속 라이브 피드를 제공하지는 않습니다.

답변1

여기에는 몇 가지 옵션이 있습니다. 다음을 추가하여 MySQL에 대한 일반 쿼리 로깅을 활성화할 수 있습니다.

 log = /path/to/your/log.log

my.cnf(일반적으로 /etc/my.cnf)로 이동하고 다시 시작합니다. 그런 다음 필요에 따라 꼬리를 달 수 있습니다. 시간이 지남에 따라 해당 로그가 상당히 커질 수 있으므로 반드시 이것을 권장하지는 않습니다.

두 번째 옵션은 언급한 대로 watch를 mysqladmin proc과 함께 사용하는 것입니다. 예를 들어 다음을 사용할 수 있습니다.

 watch -n.5 'mysqladmin proc stat'

0.5초마다 프로세스 목록과 상태를 표시합니다. 특정 요구 사항에 맞게 -n.5를 변경할 수 있습니다(저는 추가 정보를 제공하기 위해 줄에 stat를 추가하는 것을 선호합니다. 이는 때때로 도움이 될 수 있습니다).

답변2

모든 쿼리는 ".mysqlhistory"라는 시스템 파일에 기록됩니다. 아래 명령을 실행하면 DB에서 실행 중인 쿼리를 적극적으로 볼 수 있습니다.

찾기 / -name ".mysqlhistory" -exec 'tail -f'

관련 정보