집 >데이터 베이스 >MySQL 튜토리얼 >mysql 로그 기반 마스터-슬레이브 복제에 대한 자세한 설명
관련 학습 권장사항:
mysql 비디오 튜토리얼실험 환경으로 사용할 수는 없을까요? (어색한 미소)문서를 찾는 것부터 실험을 실행하는 것까지 총 3일이 걸렸습니다. (하루 종일 이 문제에 집중하지 않았기 때문입니다.) 기본적으로는 끝났습니다. 즉, 누군가 나에게 어떻게 해야 하는지 아느냐고 묻는다면 나는 이미 해봤고 어려운 일이 아니라고 말할 것입니다. 특별히 주의할 점:
mysql > 'password'로 식별되는 'slave'@'%ip%'에 대한 복제 슬레이브 부여;
#슬레이브'는 어느 계정인지 나타내며, @는 슬레이브 서버의 IP입니다. 다음은 비밀번호입니다. systemctl status Firewalldmysql> 복제 중지# 방화벽 상태 보기 firewall-cmd –list-all # 방화벽 포트 목록 보기
Firewall-cmd –permanent –zone=public –add-port=3306/tcp# 릴리스 포트 3306
firewall-cmd –reload#
방화벽을 다시 시작하세요또한 iptable이 있는 경우 확인할 수 있습니다.
슬레이브 라이브러리의 주요 작업은
mysql> show 슬레이브 상태G;#
- 상태 보기
- 상세 구성
마스터-슬레이브 구성은 로그 사용
방화벽 동작, 추후 이상한 문제 방지를 위해 자주 사용하는 여러 명령어의 방화벽 동작 참고
- 메인 서버에서 구성
mysql 로그 관련 다른 사항을 먼저 건드리지 말고 이 단락을 읽어보세요.
#
aster live copyconfigureserver-id = 238 //재사용하지 않으려면 서버 IP의 마지막 숫자를 사용해 보세요. to name
skip_name_resolve=ON //직접 쓰세요, 다른 사람 문서 참고하세요expire_logs_days = 10 //로그 저장 일수를 설정합니다. 이건 추가할 필요가 없을 것 같고, 그렇지 않습니다. 추가해도 상관없습니다. 테스트 환경에서는 정식으로 온라인으로 실행하면 무게를 재야 하기 때문이죠# /etc/init.d/mysql restart // 꼭 어떻게 했는지 보라는 명령어는 아니니까요. centos를 설치하셨나요? systemctl restart mysql도 있습니다. 이해가 안 되시면 Linux 운영에 대해 더 자세히 알아보세요.
##두 서버가 복사되지 않은 경우 auto.cnf의 uuid가 달라야 합니다. 복사된 파일이어야 합니다. 이 파일은 mysql 설치 디렉터리의 /var 디렉터리에 있습니다. 존재하는 경우 이 파일을 삭제하거나 mv 백업하세요.
mysql에 대한 복사 권한을 구성하세요# mysql -uroot -p "password" //mysql 서버에 로그인하면 비밀번호를 입력하라는 메시지가 표시됩니다
라이브러리의 구성에서 my.cnf를 수정
mysql>GRANT 복제 슬레이브 ON . TO 'slave'@'%' IDENTIFIED BY '111111 '; // 복제에 대해 설명합니다 복사 권한 할당. 어떤 라이브러리를 운영할 수 있나요? 끝에 있는 'slave'@'%'는 모든 호스트가 슬레이브를 사용하여 라이브러리에서 복사할 수 있다는 의미입니다. IP 뒤에는 mysql> show master status;
+——————+———-+————+—————+——————-+
| 파일 | 위치 | Binlog_Ignore_DB | Execulated_Gtid_Set |
+—— ————+————-+———–+—————-+
-bin.000010 | 2812 | ——+————-+———–+——————+—————-+
1줄(0.00초)
위의 표는 성공을 나타냅니다
binlog_format=mixed //로그 형식
server-id =239 //Server ID this 메인서버와 설명, tail IP를 사용#
슬레이브 라이브러리 설정
expire_logs_days = 10 //이것을 주석 처리했는데,
# early-plugin-load = "" //이것은 당분간 사용하지 않으니 활성화 하시면 설정 가능합니다. 마스터-슬레이브 복제 항목은 중요 항목이 아닙니다relay_log = mysql-relay-bin //슬레이브 라이브러리의 복제 로그입니다
relay_log_index=relay_log .index //Log index#
/etc/init.d/mysql restart // Centos를 어떻게 설치했는지에 따라 달라지는 명령입니다. 이것을 이해하지 못한다면 systemctl restart mysql도 있습니다. , Linux 작업에 대해 자세히 알아볼 수 있습니다
슬레이브 라이브러리에서 mysql 터미널을 입력합니다. # mysql -uroot -p //터미널을 입력합니다
#
mysql -uroot -p //터미널에 들어가세요 (자세히 쓰는 이유는 이 글을 읽으시는 분들이 연산이 불완전한 것으로 오해하실까 봐 두려워서입니다)#슬레이브 닫기
mysql>stop 슬레이브; //슬레이브 라이브러리를 닫는 것입니다. 완료되었는지 확인하세요.
마스터 매개변수를 수정하세요
master_host='로 변경하세요. 192.168.5.238',
master_user='slave',master_password='위의 마스터 라이브러리 복사 권한 설정 시 비밀번호를 입력하세요',mysql> showslave status G;master_log_file='mysql-bin.000010', //여기에 입력하세요. 파일을 복사하면 됩니다. 메인 라이브러리의 show master 상태 이름. //메인 라이브러리에서 show master 상태를 찾습니다.
mysql>start 슬레이브 시작;
마스터-슬레이브 복제가 성공했는지 확인하세요
Slave_IO_State: Waiting for master to send event Master_Host: 192.168.5.238 Master_User: slave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000010 Read_Master_Log_Pos: 2812 Relay_Log_File: mysql-relay-bin.000013 Relay_Log_Pos: 3025 Relay_Master_Log_File: mysql-bin.000010 Slave_IO_Running: Yes Slave_SQL_Running: Yes
설정 중에 문제가 발생했습니다. 즉, uuid 오류가 보고되었습니다. 이유는 mysql을 설치한 후 가상 머신에서 제 실험 환경을 복사했기 때문입니다. , 그래서 mysql이 발생했습니다. uuid는 동일합니다
#
cd /usr/local/mysql/var/etc/init.d/mysql restart //데이터베이스를 다시 시작하세요#
mv auto.cnf auto.cnf.back //없으면 확인하세요. 그렇다면 작동하지 마세요#
이 시점에서 로그를 확인하세요. 기반 마스터-슬레이브 복제가 완료되었습니다
위 내용은 mysql 로그 기반 마스터-슬레이브 복제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!