2010-02-24 6 views

답변

1

MySQL 인스턴스에 로그온이 설정되어있는 경우 로그를 볼 수 있습니다. 이것은 최선의 선택이 될 것입니다.

시스템의 기록이 켜져있는 경우 동일한 시스템에서 클라이언트 백업을 시작하고 위쪽 화살표를 시도 할 수 있습니다. 거기에서 명령을 볼 수 있습니다.

명령을 실행 한 사용자를 알고 명령 줄에서 직접 실행 한 경우 동일한 기록 트릭이 작동 할 수 있습니다.

+0

http://dev.mysql.com/doc/refman/5.0/en/server-logs.html은 관리를위한 MySQL 로깅 설명에 대한 링크입니다. – TheJacobTaylor

+0

답장을 보내 주셔서 감사합니다. phpmyadmin을 사용하고 있지만 기록이나 로그 옵션을 찾을 수 없습니다. –

+0

데이터가 필요한 경우 시스템 관리자에게 쿼리 로그를 요청할 수 있습니까? 특정 날짜에 사용자가 "alter"명령을 찾도록하십시오. 희망을 갖고 그들은 도움을 줄 수 있기를 바랍니다. – TheJacobTaylor

4

하나의 작은 설명 : show create table은 실제로 이전에 실행 된 것을 다시 가져 오지 않습니다. 처음부터 테이블을 생성하는 DDL을 보여줍니다. 테이블이 생성되어 여러 번 변경되었을 수 있지만 show create table은 테이블의 현재 상태를 반영합니다.

테이블에서 최근에 실행 된 alter table 문을 찾는 가장 좋은 방법은 바이너리 로그입니다. 다음 관련 테이블 이름을 grep으로, SQL로 변환 mysqlbinlog로를 사용하여,이 경우

show variable like 'log_bin'; 

, 해당 기간 동안 바이너리 로그를 찾을 수 :

첫 번째 검사는 바이너리 로그가 활성화되어 있는지 확인합니다 찾고있는 alter table 문을 찾으십시오.

1

도구 :

  • Maatkit. 레드 게이트의 MySQL의 스키마 & 데이터 비교
  • 두꺼비
  • SQLyog에
  • MySQL의 DIFF

수동 : 바이너리 로깅이 활성화 된 경우

먼저 검사 볼 수 :

show variable like 'log_bin'; 
그리고 0

,

mysqlbinlog /var/log/mysql/mysql-bin.000001 | grep 'alter table *tablename*' > test.file 

이동은 ALTER 문을 볼 수 test.file합니다.