2011-01-26 2 views
1

나는 서로 동일해야하는 두 개의 mysql 데이터베이스를 가지고있다. 하나는 이전 버전의 스크립트로 만들어졌고 다른 하나는 새로운 리팩터링 된 버전으로 만들어졌습니다.mysqldump와 두 개의 데이터베이스 비교하기?

이러한 데이터베이스가 동일하다는 것을 보여줄 필요가 있습니다.

나는 각각 mysqldump을 얻고 그들과 diff을 비교하는 아이디어를 가지고 있었다. 그러나 분명히 그렇게 간단하지는 않다.

각 파일의 삽입 순서가 다르므로 두 파일이 서로 완전히 다르게 표시됩니다 (서로 다를 수 있으며 쉽게 다른 행에 데이터가 표시된다는 것을 쉽게 알 수 있습니다).

mysqldump의 출력을 주문하거나 다른 방법을 사용하여이 두 데이터베이스가 정확히 동일하거나 차이점을 지적하지 않는 방법을 찾고 있습니다.

감사합니다.

+0

다음을 시도했습니다. http://2skies.com/docs/Comparing_mysql_tables_with_mysqldump_and_diff 결과는 다르게 정렬됩니다. – chaimp

+0

시도해보십시오 http://www.mysqldiff.org/ 해당 무료 –

+0

이 스레드를 확인한 적이 있습니까 : http://stackoverflow.com/questions/225772/compare-two-mysql-databases – hade

답변

2

doc here 도와 드릴 수있는 --compatible 깃발이 있습니다.

당신은 예를 들어, 그것에게 mysql 가장 낮은 버전을 지정합니다 :

mysqldump --compatible=mysql40 

그래서 당신의 출력이 두 버전에 동일해야합니다 (가 4.0보다 큰 가정, 그렇지 않으면 mysql323 사용).

+0

시도해 보니 차이가 없습니다. 정렬 된 데이터를 볼 때 동일한 것으로 보이는 하나의 테이블을 사용하지 않고 있지만 29709 행은 diff 출력에서 ​​찾을 수 있습니다 ...하지만 대답 해 주셔서 감사합니다. – chaimp

+2

@jeffp와 동일한 "정렬 된 데이터"는 데이터가 동일한 방식으로 물리 적으로 저장되었다는 것을 의미하지 않습니다. '--order-by-primary' 옵션 플래그를 추가해볼 수 있습니다. – Simone

+0

그 덕분에, 고마워. – chaimp

0

나는 Meld를 ​​사용하여 덤프를 비교합니다. 잘 작동합니다.

관련 문제