GoGPT Best VPN GoSearch

온웍스 파비콘

mysqldiff - 클라우드에서 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 mysqldiff 실행

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 mysqldiff 명령입니다.

프로그램:

이름


mysqldiff - 데이터베이스 객체 간의 차이점 식별

개요


mysqldiff [옵션] {db1[:db1] | {db1.obj1[:db2.obj2]} ...

기술


이 유틸리티는 객체의 정의를 읽고 diff와 유사한 방법을 사용하여 비교합니다.
동일한지 여부를 확인합니다. 유틸리티는 개체의 차이점을 표시합니다.
동일하지 않습니다.

db1:db2 표기법을 사용하여 비교할 두 데이터베이스의 이름을 지정하거나 db1만 사용하여
같은 이름의 두 데이터베이스를 비교합니다. 후자의 경우는 편의 표기법입니다.
다른 서버에서 같은 이름의 데이터베이스를 비교합니다.

단일 서버에서 이름이 다른 두 데이터베이스에 대해 비교를 실행할 수 있습니다.
만 지정 --서버1 옵션. 사용자는 다음을 통해 다른 서버에 연결할 수도 있습니다.
지정 --서버2 옵션. 이 경우 db1은 server1에서 가져오고 db2는 다음에서 가져옵니다.
서버2.

데이터베이스 쌍이 지정되면 한 데이터베이스의 모든 개체가
다른 개체의 해당 개체. 두 데이터베이스에 나타나지 않는 모든 개체는 다음을 생성합니다.
오류.

특정 개체 쌍을 비교하려면 개체 이름을 각 데이터베이스 이름에 추가하십시오. db.obj
체재. 예를 들어, db1.obj1:db2.obj2를 사용하여 두 개의 명명된 개체를 비교하거나 db1.obj1을 사용하여
같은 이름을 가진 데이터베이스에서 같은 이름을 가진 개체를 비교합니다. 하는 것은 합법이 아니다
데이터베이스 이름과 개체 이름을 혼합합니다. 예를 들어, db1.obj1:db2 및 db1:db2.obj2는
불법입니다.

서로 다른 두 데이터베이스를 비교하기 위해 단일 서버에 대해 비교를 실행할 수 있습니다.
만 지정하여 동일한 서버의 이름 --서버1 옵션. 또는 다음을 수행할 수 있습니다.
또한 지정하여 다른 서버에 연결 --서버2 옵션. 이 경우 첫 번째
비교할 개체는 server1에서 가져오고 두 번째 개체는 server2에서 가져옵니다.

기본적으로 유틸리티는 개체 차이를 차이 보고서로 생성합니다. 그러나 당신은
변환을 위한 SQL 문을 포함하는 변환 보고서를 생성할 수 있습니다.
대신 적합성을 위한 개체. 'sql' 값을 사용하십시오. --difftype 생성하는 옵션
개체 정의를 준수하는 적절한 ALTER 명령이 포함된 목록
지정된 개체 쌍. 변환을 구성할 수 없는 경우 유틸리티는 다음을 보고합니다.
경고문과 함께 개체의 diff. 참고에서 중요한 제한 사항을 참조하십시오.
안내

diff 스타일 출력을 표시하는 방법을 지정하려면 다음 값 중 하나를
--difftype 옵션 :

· 통일 (기본값)

통합 형식 출력을 표시합니다.

· 문맥

컨텍스트 형식 출력을 표시합니다.

· 다르다

다른 스타일 형식 출력을 표시합니다.

· SQL

SQL 변환 명령문 출력을 표시합니다.

The --변경 사항-for 옵션은 차이의 방향을 제어합니다(
차이 보고서(기본값) 또는 변환에서 변환할 개체)
보고서(로 지정됨 --difftype=SQL 옵션). 다음 명령을 고려하십시오.

mysqldiff --server1=root@host1 --server2=root@host2 --difftype=sql \
db1.table1:dbx.table3

가장 왼쪽에 있는 데이터베이스(db1)가 지정된 서버에 존재합니다. --서버1 option
(호스트1). 가장 오른쪽에 있는 데이터베이스(dbx)가 지정된 서버에 존재합니다. --서버2
옵션(host2).

· --changes-for=서버1: 의 정의를 만드는 방법을 보여주는 출력을 생성합니다.
server1의 개체는 server2의 해당 개체 정의와 같습니다.

· --changes-for=서버2: 의 정의를 만드는 방법을 보여주는 출력을 생성합니다.
server2의 개체는 server1의 해당 개체 정의와 같습니다.

기본 방향은 server1입니다.

럭셔리 SQL 차이 형식을 지정하여 역변환을 볼 수도 있습니다.
--쇼-리버스 옵션을 선택합니다.

유틸리티는 누락된 개체가 처음 발생하거나 개체가 없는 경우 중지됩니다.
성냥. 이 동작을 재정의하려면 다음을 지정하십시오. --힘 유틸리티를 실행하는 옵션
인수로 나열된 모든 개체를 비교하려고 시도합니다.
옵션

mysqldiff 다음 명령줄 옵션을 허용합니다.

· --돕다

도움말 메시지를 표시하고 종료합니다.

· --changes-for=

다른 서버와 일치하도록 변환을 표시할 서버를 지정합니다. 예를 들어,
일치하도록 server1의 개체 정의를 변환하는 변환을 참조하십시오.
server2의 해당 정의, 사용 --changes-for=서버1. 허용되는 값은
server1 그리고 server2. 기본값은 server1.

· --difftype= , -NS

차이 표시 형식을 지정합니다. 허용되는 형식 값은 통일, 문맥,
다르다SQL. 기본값은 통일.

· --힘

발견된 첫 번째 차이점에서 멈추지 마십시오. 모든 개체를 처리하여 모두 찾기
차이점.

· --조용한, -q

아무 것도 인쇄하지 마십시오. 성공 또는 실패의 종료 코드만 반환합니다.

· --서버1=

형식의 첫 번째 서버에 대한 연결 정보:
<사용자>[:passwd>]@주인>[:포트>][:소켓>] 또는로그인 경로>[:포트>][:소켓>].

· --서버2=

다음 형식의 두 번째 서버에 대한 연결 정보:
<사용자>[:passwd>]@주인>[:포트>][:소켓>] 또는로그인 경로>[:포트>][:소켓>].

· --show-reverse

개체를 준수하기 위해 SQL 문을 포함하는 변환 보고서를 생성합니다.
역으로 지정된 정의. 예를 들어 --변경 사항-for server1로 설정되고,
또한 server2에 대한 변환을 생성합니다. 참고: 반대 변경 사항에는 주석이 달려 있습니다.
주석으로 표시됩니다.

· --verbose, -v

표시할 정보의 양을 지정합니다. 이 옵션을 여러 번 사용하여
정보의 양. 예를 들어, -v = 장황한, -vv = 더 자세한, -vvv =
디버그.

· --버전

버전 정보를 표시하고 종료합니다.

· --폭=

테스트 보고서의 표시 너비를 변경합니다. 기본값은 75자입니다.
노트

계정에 대한 연결 매개변수(사용자, 호스트, 비밀번호 등)를 제공해야 합니다.
비교할 모든 개체에 액세스할 수 있는 적절한 권한이 있습니다.

SQL 변환 기능에는 다음과 같은 알려진 제한 사항이 있습니다.

· 파티션 차이가 있는 테이블이 발견되면 유틸리티는 다음을 생성합니다.
바꾸다 다른 모든 변경 사항에 대한 문이지만 경고를 인쇄하고 생략합니다.
파티션 차이.

· 변환이 소스 테이블에서 테이블 옵션을 감지하는 경우(
--변경 사항-for 옵션) 변경되지 않았거나 대상 테이블에 존재하지 않는 경우
유틸리티는 다음을 생성합니다. 바꾸다 다른 모든 변경 사항에 대한 명령문이지만 경고를 인쇄합니다.
테이블 옵션 차이를 생략합니다.

· 이벤트 이름 바꾸기는 지원되지 않습니다. 이 때문입니다 mysqldiff 객체를 비교합니다.
이름. 이 경우 diff의 방향에 따라 이벤트가 다음과 같이 식별됩니다.
추가해야 하거나 DROP 이달의 이벤트 문이 생성됩니다.

· 이벤트에 대한 정의자 절의 변경은 지원되지 않습니다.

· MySQL Cluster 전용 SQL 확장은 지원되지 않습니다.

다음 --difftype 옵션에서 허용되는 값은 대소문자를 구분하지 않습니다. 게다가,
values는 유효한 값의 명확한 접두사로 지정할 수 있습니다. 예를 들어,
--차이 유형=d 다른 유형을 지정합니다. 접두사가 둘 이상 일치하면 오류가 발생합니다.
유효한 값.

MySQL 클라이언트 도구의 경로는 PATH 환경 변수에 포함되어야 합니다.
로그인 경로와 함께 인증 메커니즘을 사용하려면 이렇게 하면 유틸리티가
로그인 경로 값을 읽는 데 필요한 my_print_defaults 도구를 사용하십시오.
로그인 구성 파일(.mylogin.cnf).

인수로 지정된 데이터베이스 개체 식별자에 특수 문자가 포함되거나
예약어인 경우 역따옴표(`). 차례로,
역따옴표로 인용된 이름은 다음에 따라 작은따옴표나 큰따옴표로도 인용해야 합니다.
운영 체제, 즉(") Windows 또는 (') Windows가 아닌 시스템에서
백틱 인용 식별자를 단일 인수로 읽는 유틸리티. 예를 들어 보여주기 위해
테이블의 차이 이상한` 테이블 1 데이터베이스에서 이상한`db.name 그리고 테이블
이상한` 테이블 2 데이터베이스에서 기타: 이상한`db.name, 개체 쌍은 다음을 사용하여 지정해야 합니다.
다음 구문(Windows가 아닌 경우):
'`이상한``db.name`.`이상한``테이블1`:`기타:이상한``db.name`.`이상한``테이블2`'.
사용 예

로컬 서버의 직원과 emp 데이터베이스를 비교하려면 다음 명령을 사용합니다.

$ mysqldiff --server1=root@localhost 직원:emp1
# localhost의 server1: ... 연결되었습니다.
경고: server1:employees에는 있지만 server2:emp1에는 없는 개체:
이벤트: e1
비교에 실패했습니다. 하나 이상의 차이점이 발견되었습니다.
$ mysqldiff --server1=root@localhost \
employees.t1:emp1.t1 employees.t3:emp1.t3
# localhost의 server1: ... 연결되었습니다.
# employee.t1과 emp1.t1 비교 [PASS]
# localhost의 server1: ... 연결되었습니다.
# employee.t3과 emp1.t3 비교 [PASS]
성공. 모든 개체는 동일합니다.
$ mysqldiff --server1=root@localhost \
employee.salaries:emp1.salaries --차이
# localhost의 server1: ... 연결되었습니다.
# employee.salaries를 emp1.salaries와 비교 [FAIL]
# 객체 정의는 동일하지 않습니다:
CREATE TABLE `급여`(
`emp_no` INT(11) NULL이 아님,
'급여' INT(11) NULL이 아님,
`from_date` 날짜가 NULL이 아닙니다.
`to_date` 날짜가 NULL이 아닙니다.
기본 키(`emp_no`,`from_date`),
키 `emp_no`(`emp_no`)
- ) 엔진=InnoDB 기본 문자셋=라틴1
? ^^^^
+ ) 엔진=MyISAM 기본 문자셋=라틴1
? ++ ^^
비교에 실패했습니다. 하나 이상의 차이점이 발견되었습니다.

다음 예는 변환 보고서를 생성하는 방법을 보여줍니다. 다음을 가정합니다.
객체 정의:

호스트1:

CREATE TABLE db1.table1(숫자 정수, 기타 이륜 전차(삼));

호스트2:

CREATE TABLE dbx.table3(숫자 정수, 메모 이륜 전차(30), 기타 이륜 전차(삼));

db1.table1의 정의를 다음으로 변환하는 SQL문 세트를 생성하려면
dbx.table3에서 다음 명령을 사용합니다.

$ mysqldiff --server1=루트@호스트1 --서버2=루트@호스트2 \
--changes-for=server1 --difftype=sql \
db1.table1:dbx.table3
# host1의 server1: ... 연결되었습니다.
# host2의 server2: ... 연결되었습니다.
# db1.table1과 dbx.table3 비교 [FAIL]
# 변환 문:
변경 테이블 db1.table1
열 메모 추가 이륜 전차(30) a 이후,
CHANGE COLUMN 기타 기타 이륜 전차(55);
비교에 실패했습니다. 하나 이상의 차이점이 발견되었습니다.

dbx.table3의 정의를 다음으로 변환하는 SQL 문 세트를 생성하려면
db1.table1에서 다음 명령을 사용합니다.

$ mysqldiff --server1=루트@호스트1 --서버2=루트@호스트2 \
--changes-for=server2 --difftype=sql \
db1.table1:dbx.table3
# host1의 server1: ... 연결되었습니다.
# host2의 server2: ... 연결되었습니다.
# db1.table1과 dbx.table3 비교 [FAIL]
# 변환 문:
변경 테이블 dbx.table3
DROP COLUMN 메모,
CHANGE COLUMN 기타 기타 이륜 전차(30);
비교에 실패했습니다. 하나 이상의 차이점이 발견되었습니다.

dbx.table3 및
양방향으로 db1.table1을 사용하려면 다음 명령을 사용하십시오.

$ mysqldiff --server1=루트@호스트1 --서버2=루트@호스트2 \
--show-reverse --difftype=sql \
db1.table1:dbx.table3
# host1의 server1: ... 연결되었습니다.
# host2의 server2: ... 연결되었습니다.
# db1.table1과 dbx.table3 비교 [FAIL]
# 변환 문:
# --destination=서버1:
변경 테이블 db1.table1
열 메모 추가 이륜 전차(30) a 이후,
CHANGE COLUMN 기타 기타 이륜 전차(55);
# --destination=서버2:
# 변경 테이블 dbx.table3
# DROP COLUMN 메모,
# CHANGE COLUMN 기타 기타 이륜 전차(30);
비교에 실패했습니다. 하나 이상의 차이점이 발견되었습니다.

저작권


onworks.net 서비스를 사용하여 온라인으로 mysqldiff 사용


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad




×
광고
❤️여기에서 쇼핑, 예약, 구매하세요. 비용이 들지 않아 서비스를 무료로 유지하는 데 도움이 됩니다.