2012-04-22 2 views
0

database1 (~ 500MB)은 읽기 전용 모드로 user1에 액세스 할 수 있습니다.
데이터베이스가 비어 있습니다 database2, 전체 권한이 user2입니다.읽기 전용 권한이있는 경우 MySQL 데이터베이스 복제

이제 database1database2에 복제하고 싶습니다.

나는 mysqldump을 시도했지만 그게 access denied라고합니다.

더 좋은 방법이 있습니까? 감사.

답변

1

기본적으로 mysqldump는 덤프하기 전에 모든 테이블을 잠그려고합니다. 일관된 스냅 샷을 생성하기 위해서입니다. 나는 user1에게 그렇게 할 수있는 특권이 없다고 가정합니다.

--single-transaction 또는 --skip-lock-tables을 명령 줄에서 사용할 수 있습니다. 첫 번째 옵션은 전체 작업에 대해 단일 트랜잭션을 사용합니다. 모든 테이블이 트랜잭션이고 데이터베이스가 작 으면 완벽하게 작동합니다. 데이터베이스가 큰 경우 다른 응용 프로그램에 심각한 영향을 미칠 수 있습니다.

의심되는 경우 먼저 --skip-lock-tables을 시도하십시오. 그러나 덤프 중에 다른 응용 프로그램이 변경되면 덤프가 일치하지 않을 수 있습니다.

mysqldump -h host1 -u user1 -ppass1 --single-transaction database1 | 
mysql -h host2 -u user2 -ppass2 database2 
:

전체 예제 데이터베이스를 복제하는

관련 문제