나는 프로덕션에 있었고 phpmyadmin 및 mysqldump/restore를 사용하여 몇 번 저장하고 복원한 MySQL 데이터베이스를 가지고 있습니다. 나는 "프로덕션 활동"으로 인해 이 DB 구조와 SQL을 정의하는 원래 스키마에서 생성된 새로운 "원래" 데이터베이스 사이에 약간의 불일치가 발생한 것으로 의심됩니다.
을 사용하여 프로덕션 DB를 새로운 인스턴스와 비교하려고 하면 다음과 같은 결과가 mysqldiff
나타납니다.
$ mysqldiff --server1=root@localhost dev_si_brand_new:prod_si
# server1 on localhost: ... connected.
# Comparing `dev_si_brand_new` to `prod_si` [FAIL]
# Object definitions differ. (--changes-for=server1)
#
--- `dev_si_brand_new`
+++ `prod_si`
@@ -1 +1 @@
-CREATE DATABASE `dev_si_brand_new` /*!40100 DEFAULT CHARACTER SET latin1 */
+CREATE DATABASE `prod_si` /*!40100 DEFAULT CHARACTER SET latin1 */
Compare failed. One or more differences found.
로부터mysqldiff 문서
데이터베이스 쌍이 지정되면 한 데이터베이스의 모든 개체가 다른 데이터베이스의 해당 개체와 비교됩니다. 두 데이터베이스 모두에 나타나지 않는 개체는 오류를 생성합니다.
디버그 정보를 얻을 수 있나요?
유용한 차이점 보고서를 생성하려면 어떻게 해야 합니까?
참고: 나는 달리고 있다
mysql Ver 14.14 Distrib 5.5.43
- 우분투 리눅스
답변1
mysqldiff
dev_si_brand_new
DB 이름 과 관련하여 두 DB 사이에 차이가 있음을 알려줍니다 prod_si
.
mysqldiff
처음 발생한 차이점에서 중지하고 비교를 계속하지 않으려면 --force
명령줄에 인수를 추가하기만 하면 됩니다.
--힘
처음 발견된 차이점에서 멈추지 마십시오. 모든 개체를 처리하여 모든 차이점을 찾아보세요.
mysqldiff --force --server1=root@localhost dev_si_brand_new:prod_si