링크 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
――――――――――――――――――――――――――――Cmysql 비밀 키 및 인증서 신청 파일 준비:
첫 번 째 단계: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
――――――――――――――――――――――――――――Cmy 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 주종 복사 에 도움 이 되 었 으 면 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Nginx를 사용하여 도메인을 포트 번호로 리디렉션하고 SSL을 설정하는 방법은 무엇인가요?nano 또는 vim에서 이 파일 열기/etc/nginx/nginx.conf nginx.conf를 업데이트한 후 이 명령을 적용합니다. nginx.conf 테스트sudo nginx -tnginx 서비스 다시 시작su...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.