특정 MySQL 작업만 기록하는 방법이 있습니까?
프로덕션 서버에서 로그인을 활성화해야 하지만 삭제/생성 명령에만 해당됩니다. 불행하게도 모든 것을 기록하는 것은 느리고 이러한 특정 명령만 필요합니다.
답변1
mysql에는 쿼리를 기록하는 정교한 방법이 없습니다. 당신이 할 수 있는 유일한 일은 다음과 같습니다:
일반 쿼리 로그는 mysqld가 수행하는 작업에 대한 일반적인 기록입니다. 서버는 클라이언트가 연결하거나 연결을 끊을 때 이 로그에 정보를 기록하고 클라이언트로부터 받은 각 SQL 문을 기록합니다. 일반 쿼리 로그는 클라이언트의 오류가 의심되고 클라이언트가 mysqld에 보낸 내용을 정확히 알고 싶을 때 매우 유용할 수 있습니다.
답변2
binlog를 켜서 시도해 볼 수 있습니다. 일반 로그(데이터를 변경하는 명령만 기록됨)만큼 성능이 저하되지는 않습니다. 그러나 예를 들어 drop 명령이 실행된 IP를 기록하려는 경우에는 적합하지 않을 수 있습니다.
답변3
아주 좋은 해결 방법이 있습니다. 예를 들어 다음과 같이 tail
의 출력을 에 전달하면 됩니다 .grep
$ tail -f /var/log/mysql/mysql.log | grep "update "