같은 방법으로 SHOW CREATE TABLE tblname; 이전에 실행 된 것을 다시 가져 오며, 어쨌든 ALTER TABLE 쿼리의 SQL을 볼 수 있습니까? 도와주세요.실행 후 ALTER TABLE을 보는 방법은 없습니까? -MySQL
6
A
답변
1
MySQL 인스턴스에 로그온이 설정되어있는 경우 로그를 볼 수 있습니다. 이것은 최선의 선택이 될 것입니다.
시스템의 기록이 켜져있는 경우 동일한 시스템에서 클라이언트 백업을 시작하고 위쪽 화살표를 시도 할 수 있습니다. 거기에서 명령을 볼 수 있습니다.
명령을 실행 한 사용자를 알고 명령 줄에서 직접 실행 한 경우 동일한 기록 트릭이 작동 할 수 있습니다.
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합니다.
http://dev.mysql.com/doc/refman/5.0/en/server-logs.html은 관리를위한 MySQL 로깅 설명에 대한 링크입니다. – TheJacobTaylor
답장을 보내 주셔서 감사합니다. phpmyadmin을 사용하고 있지만 기록이나 로그 옵션을 찾을 수 없습니다. –
데이터가 필요한 경우 시스템 관리자에게 쿼리 로그를 요청할 수 있습니까? 특정 날짜에 사용자가 "alter"명령을 찾도록하십시오. 희망을 갖고 그들은 도움을 줄 수 있기를 바랍니다. – TheJacobTaylor