2011-01-18 1 views
4

2 개의 MySQL 데이터베이스가 있으며 동기화 상태를 유지하고 싶습니다. 문제는 "마스터"데이터베이스를 실행하는 시스템에 액세스 할 수 없다는 것입니다. 읽기 권한 만 있습니다.동기화 2 MySQL 데이터베이스

그래서 보조 데이터베이스를 만들었고 매일 12:00에 마스터와 동기화 할 cron 작업을 만들고 싶습니다 (예 :).

가장 좋은 방법은 무엇입니까?

+0

당신은 _get_ MySQL 복제 작동 권한을 얻을 수 있습니까? – Alnitak

+0

nop ... 모두보기가 있습니다 ... – void

답변

0

가장 단순하지만 가장 많은 오버 헤드가있는 것은 단순히 mysql-dump를 수행하고 두 번째 데이터베이스로 데이터를 다시 가져 오는 것입니다.

+0

master 데이터베이스를 실행하는 시스템에 대한 액세스 권한이 없습니다 ... – void

+0

mysqldump : 1044 : 'user'user '@'% '에 대한 액세스가 거부되었습니다. LOCK TABLES을 할 때 'database'데이터베이스 '데이터베이스' – void

+0

글쎄요, 네가 거기 붙어있을 것 같아. – BastiBen

0

내 솔루션은 모든 데이터를 다시 가져올 파이썬 스크립트를 만드는 것이 었습니다. 어쨌든 django-app의 테이블 이름을 변경해야했습니다.

6

MySQL 용 Maatkit 툴킷의 mk-table-sync을 사용하십시오. 문서에서

: 자동으로 동기화로 테이블을 가져올 수있을뿐 아니라

Make slave1 have the same data as its replication master: 

    mk-table-sync --execute --sync-to-master slave1 

, 그것은 필요한 것이다 단지 출력 SQL 문을 수동으로 할 수있는 --dry-실행 인수를 가지고 있습니다. mk-table-sync에 대한 올바른 명령 줄 인수를 선택했으며 테이블을 실제로 동기화 할 때 제대로 작동한다는 것을 확신하는 데는 탁월합니다.

+0

OSX에서 이것을 설치하는 방법에 대한 아이디어가 있으십니까? – Kostas

+0

다운로드하여 압축 파일을 추출하십시오. README 파일에서 설치 지시 사항을 찾으십시오. Maatkit을 설치하기 전에 Perl MySQL 드라이버를 설치하려면 다음을 실행해야합니다 : sudo perl -MCPAN -e 'install DBD :: mysql'. 1 년 전 필자는 Snow Leopard에서 32 비트 대 64 비트 Perl 문제를주의해야 할 추가 문제에 대해 블로그에 게시했습니다. http://www.wombatnation.com/2009/11/maatkit-install-on-os-x-snow-leopard –