2014-02-19 1 views
3

매우 최근에 mysql 클라이언트 도구가 내가 발행 한 모든 쿼리를 로깅하지 않는다는 것을 알게되었습니다. 그 행동은 매우 모순 된 것처럼 보입니다. 일부 쿼리는 로깅되고 다른 쿼리는 명확한 패턴없이 쿼리가 더 단순 해 보이지만 로깅 될 확률이 높습니다. 이것은 적어도 말하기 위해 성가신 일입니다. 우분투 12.04 LTS에서 MySQL 5.6.14를 사용하고 있습니다.MySQL 클라이언트 히스토리가 일부 쿼리를 로깅하지 않음

실제로 많은 패턴이있는 것처럼 보이지 않습니다. SELECT COUNT(*) FROM TABLE_X WHERE COL_1=3;과 같은 검색어는 잘 기록 될 수 있지만 은 그렇지 않습니다.

아이디어가 있으십니까? 이것은 아주 최근에 출시 된 MySQL 버전이며, 개발에만 사용하고 있습니다. 마이크로 초 타임 스탬프 해상도로 인해 지금까지보다 훨씬 더 깨끗한 방식으로 많은 문제를 해결할 수 있기 때문에 라이브 시스템으로 롤아웃하고 싶습니다.

UPDATE : 아래 Alex_at_wearenotmachines 따라, 쿼리 형태의 *PASSWORD* 모든 패턴은 분명히 지나치게 넓은 기준이다 로깅을 비활성화.

답변

2

bugs.mysql.com에서이 사실을보고했습니다. 이상한 mysql> 프롬프트가 갑자기 명령의 중간에 나타납니다. 그리고 평균 약 .75 초 테이블 생성 명령을 실행하려면? 조금 느린 것 같습니다 ....

어떤 패턴도 보이지 않습니다 - 그것은 사용자로부터 SELECT 비밀번호를 기억하기를 거부했습니다. 그러나 대부분의 다른 것들을 기억했다. 약 3 주 동안 사용 해왔고 지금은 알아 차 렸지만 내 역사를 거슬러 올라가 보면 물건이 분명히없는 논리적 인 결함을 볼 수 있습니다.

+1

아니요! MySQL은 다음과 같이 말했습니다 : 문이 무시되고 일치하지 않으면 기록되지 않습니다. "ignore"목록의 패턴 즉, 기본적으로 패턴 목록 은 "* IDENTIFIED * : * PASSWORD *"입니다. 암호는 을 참조하십시오. 은 참조하시기 바랍니다 - http://dev.mysql.com/doc/refman/5.6/en/mysql-logging.html 이 도움이되는지 확실하지 종류의 당신을 .... 여기에 전체 버그 리포트 : HTTP : //bugs.mysql.com/? id = 71987 –

+0

이것은 일어난 것 같습니다 (나는 그것을 놓쳤습니다.) 답변을 고쳐서 최선을 다할 수 있습니까? 나는 단순히 중지 목록에 추가 패턴을 추가하는 대신이 동작을 완전히 비활성화하는 방법이 있었으면 좋겠다. –

2

이것은 실제 버그입니다. 현재 클라이언트 기록에서 제거 할 이유가 없습니다. 방금 입력 한 사람이 사용할 수 있어야합니다!

또한 패턴이 지나치게 넓습니다. 어떤 문자열 리터럴이있는 경우, " 확인했다 : PASSWORD는"보다는, 민감한 데이터 때문에 패턴이없는 (너무 광범위하지만 여전히 더 합리적) 라인 어딘가에 문자열 리터럴이 필요합니다 같은 : 를 발견 [ ' "]*:*PASSWORD*['"] *

또한 이러한 패턴을 덮어 쓸 수 있어야합니다. (암호 열에 다중 테이블 조인을 작성한 것처럼 (묻지 않음) 위쪽 화살표를 삽입 할 수도 없습니다. 누락 된 쉼표 ...)

또 하나의 것 (Brian Matthews 감사합니다! http://forums.mysql.com/read.php?11,631456,631456#msg-631456) 당신이 완전히이 햄에 의해 나처럼 얽혀 있다면, 당신 mysql 클라이언트 바이너리를 hexediting하여 비활성화 할 수 있습니다. 추악하지만 효과적입니다. 이제 fix_mysql_client라는 스크립트가 있습니다 ...

+0

http : //bugs.mysql.co.kr/bug.php? id = 78088 버그가 수정되어 여전히 안전하지만 훨씬 덜 고통스러워 지도록 요청합니다. –

+1

감사합니다. 이것은 정말로 뇌사 상태입니다. 예를 들어, 컬럼 중 하나에'PASSWORDx '가있는 테이블을 생성하는 경우, 라인을 다시 가져 오기 위해 히스토리를 사용할 수 없다는 것을 의미합니다. 그건 바보 야. –

관련 문제