링크 ux 시스템 에서 openssl 을 사용 하여 my sql 마스터 복 제 를 실현 합 니 다.

인증서 준비:
CA 인증서:
첫 번 째:CA 비밀 키 만 들 기[root@localhost CA]# (umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)두 번 째 단계:자체 서명 인증서 생 성[root@localhost CA]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem  -days 7300 -out /etc/pki/CA/cacert.pem――――――――――――――――――――――――――――C
mysql 비밀 키 및 인증서 신청 파일 준비:
첫 번 째 단계:mysql 비밀 키 만 들 기:[root@localhost ~]# (umask 066;openssl genrsa -out /var/lib/mysql/ssl/mysql.key 2048)두 번 째 단계:인증서 신청 파일 생 성 및 CA 서버 에 전송[root@localhost ~]# openssl req -new -key /var/lib/mysql/ssl/mysql.key -days 365 -out /var/lib/mysql/ssl/mysql.csr주의:국가,성,회사 이름 은 CA 와 일치 해 야 합 니 다.
인증서 신청 파일 을 CA 서버 로 보 내기
                ――――――――――――――――――――――――――――C
CA 서버 에서 인증서 발급:[root@localhost CA]# openssl ca -in /tmp/mysql.csr -out /tmp/mysql.crt -days 365인증서 의 정보 보기 명령 을 첨부 합 니 다:openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|subject|serial|dates                ――――――――――――――――――――――――――――C
my sql 서버 에 인증 서 를 보 냅 니 다.
그리고 CA 의 자체 서명 인증 서 를 서버 에서 보 냅 니 다.
인증서 준비 동작 은 여기 서 마 칩 니 다.
ssl 기능 을 바탕 으로 주종 복 제 를 실현 하 는 것 은 주종 쌍방 이 서로 검증 해 야 하 는 것 이다.즉,서버 에서 도 자신의 인증서 가 있어 야 한다.
따라서 상기 절차 에 따라 slave 서버 인증 서 를 생 성 합 니 다.
           ================================================
        mysql 서버 설정:
홈 서버 에서 ssl 에 관 한 인 자 를 봅 니 다. 미치다 마스터 복사 C 홈 서버 의 설정 항목:MariaDB [(none)]> show variables like ‘%ssl%';            
ssl 기능 설정 항목 이 전역 설정 매개 변수 이기 때문에/etc/my.cnf 파일 을 편집 합 니 다:
클 라 이언 트 인증 서버 이기 때문에 설정 만 필요 합 니 다. ssl_cert(my sql 서버 의 인증서 위치),sslkey(my sql 비밀 키 위치)와 sslca(CA 인증서 위치)

서 비 스 를 시작 하고 검사:

                ――――――――――――――――――――――――――――C
ssl 기반 기능 을 만 듭 니 다.서버 에서 my sql 메 인 서버 데이터 베 이 스 를 복사 하 는 최소 권한 계 정 을 만 듭 니 다.MariaDB [(none)]> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO ‘slave1'@'10.1.35.25' IDENTIFIED BY ‘passwd' REQUIRE ssl ;     

서버 설정 에 사용 할 binlog 위 치 를 보고 기록 합 니 다.
MariaDB [(none)]> SHOW MASTER LOGS;

               ================================================
서버 설정:
편집/etc/my.cnf,서버 에서 시작 하기 때문에 중계 로그(relaylog),그리고 serverid 는 같은 차원 의 my sql 서버 와 같 으 면 안 됩 니 다.
                                   
my sql 서 비 스 를 시작 하고 검사 합 니 다:

――――――――――――――――――――――――――――C
서버 에서 홈 서버 를 가리 키 는 설정(이것 은 전역 설정 매개 변수 이지 만 설정 파일/etc/my.cnf 에 쓰 는 것 을 권장 하지 않 습 니 다.slave 가 예상 치 못 한 지연 으로 인해 데이터 의 완전 성 을 검사 하기 위해 my sql 을 시작 할 때 도 자동 으로 복사 기능 을 시작 하여 오류 제거 에 불리 합 니 다)MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='10.1.35.1′,MASTER_USER='slave1′,MASTER_PASSWORD='passwd',MASTER_LOG_FILE=' master-log.000025 ‘,MASTER_LOG_POS= 245 , MASTER_SSL =1, MASTER_SSL_CA ='/var/lib/mysql/ssl/cacert.pem', MASTER_SSL_CERT ='/var/lib/mysql/ssl/slave.crt', MASTER_SSL_KEY ='/var/lib/mysql/ssl/slave.key';
MariaDB [(none)]> START SLAVE;

                ================================================
마스터 효과 검증:
                ――――――――――――――――――――――――――――C
홈 서버 데이터베이스 mydb 만 들 기
                               
                ――――――――――――――――――――――――――――C
서버 에서 보기:
                          
                ================================================
    요약:
복사 할 때 주의해 야 할 문제:
1.서비스 에서'읽 기 전용'으로 설정 합 니 다.(더 블 메 인 모드 설정 필요 없 음)
서버 에서 read 시작only,하지만 SUPER 권한 이 아 닌 사용자 에 게 만 유효 합 니 다.
모든 사용자 차단:mysql> FLUSH TABLES WITH READ LOCK;2.복사 할 때의 업무 안전 확보
master 노드 에서 인자 사용 하기:
sync_binlog = ON    #트 랜 잭 션 을 제출 할 때마다 바 이 너 리 로그 시간 을 디스크 에 동기 화하 여 서버 에서 즉시 이 벤트 를 얻 을 수 있 고 로 컬 데이터 안전 을 보호 할 수 있 습 니 다.
InnoDB 메모리 엔진 을 사용한다 면:
innodb_flush_logs_at_trx_commit=ON      #트 랜 잭 션 을 제출 할 때 메모리 에서 디스크 로 트 랜 잭 션 로 그 를 즉시 작성 합 니 다.
innodb_support_xa=ON    #분산 트 랜 잭 션 지원
\#이 두 가지 가 시작 되면 서버 에서 홈 서버 의 최신 이 벤트 를 즉시 받 을 수 있 도록 어느 정도 확보 할 수 있 습 니 다.
3.서버 가 예상 치 못 하 게 중단 되 었 을 때 복사 스 레 드 를 자동 으로 시작 하지 않도록 합 니 다.
데이터 가 중요 하기 때문에 서버 가 예상 치 못 하 게 종료 할 수 있 는 시간 은 모두 기이 하기 때문에 종료 후 서버 에서 복사 스 레 드 를 자동 으로 시작 하지 못 하 게 하고 인공 수 동 으로 검사 한 후에 야 복사 스 레 드 를 새로 시작 합 니 다.스 레 드 를 반 으로 복사 할 때 의외 의 사고 가 발생 할 수 있 습 니 다.스 레 드 를 복사 하 는 기능 이 없 을 수도 있 습 니 다.C 는 지난번 에 중 단 된 사건 을 다시 복사 해 야 할 지 모 릅 니 다.               
4.노드 에서:매개 변수 설정
서버 마다 하나의 파일 relay-log-info 를 저장 합 니 다.메 인 서버 에 바 이 너 리 로 그 를 복사 하 는 위치 와 로 컬 중계 로그 의 위 치 를 기록 합 니 다.바 쁜 IO 작업 이 발생 하지 않도록 이 매개 변 수 는 메모리 에 먼저 저장 되 어 어느 정도 디스크 에 동기 화 되 기 때문에 안전 하지 않 습 니 다.
sync_master_info=ON
sync_relay_log_info=ON
상기 두 가지 항목 은 메모리 에서 디스크 까지 데 이 터 를 즉시 쓰기 위해 서 입 니 다.
이상 은 본 논문 의 전체 내용 입 니 다.my sql 주종 복사 에 도움 이 되 었 으 면 합 니 다.

좋은 웹페이지 즐겨찾기