이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 pt-show-grantsp 명령입니다.
프로그램:
이름
pt-show-grants - 효과적으로 복제할 수 있도록 MySQL 승인을 정규화하고 인쇄합니다.
비교하고 버전을 관리하세요.
개요
사용법: pt-show-grants [OPTIONS] [DSN]
pt-show-grants는 MySQL 서버의 부여(사용자 권한)를 표시합니다.
예 :
pt-쇼-그랜트
pt-show-grants --separate --revoke | othergrants.sql 비교 -
위험
Percona Toolkit은 성숙하고 실제 세계에서 입증되었으며 잘 테스트되었지만 모든 데이터베이스
도구는 시스템과 데이터베이스 서버에 위험을 초래할 수 있습니다. 이 도구를 사용하기 전에
부디:
· 도구 설명서 읽기
· 도구의 알려진 "버그" 검토
· 비프로덕션 서버에서 도구 테스트
· 프로덕션 서버 백업 및 백업 확인
기술
pt-show-grants는 MySQL 사용자 계정에 대한 보조금을 추출하고 주문한 다음 인쇄합니다.
왜 이것을 원합니까? 몇 가지 이유가 있습니다.
첫 번째는 한 서버에서 다른 서버로 사용자를 쉽게 복제하는 것입니다. 당신은 간단히 추출 할 수 있습니다
첫 번째 서버의 승인을 받고 출력을 다른 서버로 직접 파이프합니다.
두 번째 용도는 보조금을 버전 제어에 배치하는 것입니다. 매일 자동으로 하면
버전 제어에 덤프를 부여하면 그랜트에 대한 가짜 변경 세트가 많이 생성됩니다.
MySQL은 겉보기에 무작위 순서로 실제 승인을 인쇄하기 때문에 변경하지 마십시오. 을 위한
예를 들어, 언젠가는 이렇게 말하겠지
GRANT DELETE, INSERT, UPDATE ON `test`.* TO 'foo'@'%';
그리고 또 다른 날에는 이렇게 말하겠지
`test`에 대한 삽입, 삭제, 업데이트 권한을 부여합니다.* TO 'foo'@'%';
보조금은 변경되지 않았지만 순서는 변경되었습니다. 이 스크립트는 다음 내에서 보조금을 정렬합니다.
줄은 'GRANT'와 'ON' 사이에 있습니다. SHOW GRANTS에 여러 행이 있는 경우
행도 마찬가지입니다. 단, 항상 사용자의 비밀번호가 포함된 행을 먼저 인쇄합니다.
존재합니다. 이렇게 하면 SHOW GRANTS를 실행할 때 발생하는 세 가지 종류의 불일치가 제거됩니다.
버전 관리에서 가짜 변경 세트를 방지합니다.
셋째, 서버 간에 보조금을 비교하려는 경우 "정규화"하지 않으면 어려울 것입니다.
pt-show-grants가 수행하는 작업입니다. 출력은 완전히 diff 가능합니다.
"--revoke", "--separate" 및 기타 옵션을 사용하면 pt-show-grants를 통해 다음 작업도 쉽게 수행할 수 있습니다.
사용자의 특정 권한을 취소합니다. 그렇지 않으면 지루합니다.
옵션
이 도구는 추가 명령줄 인수를 허용합니다. "시놉시스" 및 사용법을 참조하십시오.
자세한 내용은 정보를 참조하십시오.
-- 묻고 통과
MySQL에 연결할 때 암호를 묻습니다.
--문자셋
짧은 형식: -A; 유형: 문자열
기본 문자 집합입니다. 값이 utf8이면 STDOUT에서 Perl의 binmode를 utf8로 설정하고,
mysql_enable_utf8 옵션을 DBD::mysql에 전달하고 SET NAMES UTF8을 실행합니다.
MySQL에 연결합니다. 다른 모든 값은 utf8 레이어 없이 STDOUT에서 binmode를 설정합니다.
MySQL에 연결한 후 SET NAMES를 실행합니다.
--구성
유형: 배열
이 쉼표로 구분된 구성 파일 목록을 읽으십시오. 지정된 경우 첫 번째 항목이어야 합니다.
명령줄의 옵션입니다.
--데이터 베이스
약식: -D; 유형: 문자열
연결에 사용할 데이터베이스입니다.
--기본 파일
약식: -F; 유형: 문자열
주어진 파일에서 mysql 옵션만 읽으십시오. 절대 경로 이름을 지정해야 합니다.
--떨어지다
출력에서 각 사용자 앞에 DROP USER를 추가합니다.
--플러시
출력 후 FLUSH PRIVILEGES를 추가합니다.
사용자를 완전히 삭제하려는 경우 4.1.1 이전 서버에서 이 기능이 필요할 수 있습니다.
--[아니요]헤더
기본값: 예
덤프 헤더를 인쇄합니다.
헤더는 덤프된 승인보다 앞에 있습니다. 그것은 다음과 같습니다:
-- pt-show-grants 1.0.19에 의해 버려진 보조금
-- 5.0.82-2009-10 26:10:01에 UNIX 소켓, MySQL 04-log를 통해 서버 Localhost에서 덤프되었습니다.
"--[no]타임스탬프"도 참조하세요.
--도움
도움말을 표시하고 종료합니다.
--주인
짧은 형식: -h; 유형: 문자열
호스트에 연결합니다.
--무시하다
유형: 배열
쉼표로 구분된 이 사용자 목록을 무시하십시오.
--오직
유형: 배열
쉼표로 구분된 이 사용자 목록에 대한 부여만 표시합니다.
--비밀번호
짧은 형식: -p; 유형: 문자열
연결할 때 사용할 비밀번호입니다. 비밀번호에 쉼표가 포함된 경우 이스케이프해야 합니다.
백슬래시 포함: "exam\,ple"
--pid
유형: 문자열
주어진 PID 파일을 생성합니다. PID 파일이 이미 존재하고 도구가 시작되지 않습니다.
포함된 PID가 현재 PID와 다릅니다. 그러나 PID 파일의 경우
존재하고 여기에 포함된 PID가 더 이상 실행되지 않으면 도구가 PID를 덮어씁니다.
현재 PID가 있는 파일 PID 파일은 도구가 종료될 때 자동으로 제거됩니다.
--포트
약식: -P; 유형: 정수
연결에 사용할 포트 번호입니다.
--취소
각 GRANT 문에 REVOKE 문을 추가합니다.
--분리 된
각각의 GRANT 또는 REVOKE를 별도로 나열하십시오.
MySQL의 SHOW GRANTS 명령의 기본 출력에는 단일 권한에 대한 많은 권한이 나열되어 있습니다.
선. "--flush"를 사용하면 한 번에 한 번이 아니라 각 사용자 뒤에 FLUSH PRIVILEGES를 배치합니다.
모든 출력이 끝났습니다.
--set-vars
유형: 배열
이 쉼표로 구분된 "변수=값" 쌍 목록에서 MySQL 변수를 설정합니다.
기본적으로 도구는 다음을 설정합니다.
wait_timeout=10000
명령줄에 지정된 변수는 이러한 기본값을 재정의합니다. 예를 들어,
"--set-vars wait_timeout=500"을 지정하면 기본값 10000이 무시됩니다.
도구는 경고를 인쇄하고 변수를 설정할 수 없는 경우 계속합니다.
--소켓
짧은 형식; 유형: 문자열
연결에 사용할 소켓 파일입니다.
--[아니요]타임스탬프
기본값: 예
덤프 헤더에 타임스탬프를 추가합니다.
"--[no]헤더"도 참조하세요.
--사용자
약식: -u; 유형: 문자열
현재 사용자가 아닌 경우 로그인을 위한 사용자입니다.
--번역
버전을 표시하고 종료합니다.
dsn 옵션
이러한 DSN 옵션은 DSN을 만드는 데 사용됩니다. 각 옵션은 "option=value"와 같이 주어집니다.
옵션은 대소문자를 구분하므로 P와 p는 동일한 옵션이 아닙니다. 있을 수 없다
"=" 앞이나 뒤에 공백이 있고 값에 공백이 포함되어 있으면 따옴표로 묶어야 합니다.
DSN 옵션은 쉼표로 구분됩니다. 자세한 내용은 percona-toolkit 맨페이지를 참조하십시오.
· ㅏ
dsn: 문자 집합; 복사: 예
기본 문자 집합입니다.
· NS
dsn: 데이터베이스; 복사: 예
기본 데이터베이스.
· NS
dsn: mysql_read_default_file; 복사: 예
주어진 파일에서 기본 옵션만 읽기
· h
dsn: 호스트; 복사: 예
호스트에 연결합니다.
· NS
dsn: 비밀번호; 복사: 예
연결할 때 사용할 비밀번호입니다. 비밀번호에 쉼표가 포함된 경우 이스케이프해야 합니다.
백슬래시 포함: "exam\,ple"
· 피
dsn: 포트; 복사: 예
연결에 사용할 포트 번호입니다.
· NS
dsn: mysql_socket; 복사: 예
연결에 사용할 소켓 파일입니다.
· 유
dsn: 사용자; 복사: 예
현재 사용자가 아닌 경우 로그인을 위한 사용자입니다.
환경
환경 변수 "PTDEBUG"는 STDERR에 대한 자세한 디버깅 출력을 활성화합니다. 사용하려면
디버깅하고 모든 출력을 파일로 캡처하려면 다음과 같이 도구를 실행하십시오.
PTDEBUG=1 pt-show-grants ... > 파일 2>&1
주의: 디버깅 출력은 방대하고 수 메가바이트의 출력을 생성할 수 있습니다.
시스템 요구 사항
Perl, DBI, DBD::mysql 및 모든 시스템에 설치해야 하는 몇 가지 핵심 패키지가 필요합니다.
합리적으로 새로운 버전의 Perl.
onworks.net 서비스를 사용하여 온라인으로 pt-show-grantsp를 사용하세요.