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'