목표를 달성하려면
이제 두 개의 MySQL 서버(마스터 하나와 슬레이브 하나)를 구축해야 합니다. 하나는 마스터 서버로, 다른 하나는 슬레이브 서버로 사용합니다. 읽기 작업을 수행합니다.
Workflow
마스터 서버:
바이너리 로그 활성화
고유한 서버 ID 구성
마스터 바이너리 로그 파일 이름 및 위치 가져오기
슬레이브 및 마스터 통신을 위한 사용자 계정을 생성합니다.
슬레이브 서버:
고유한 서버 ID를 구성하세요.
마스터 바이너리 로그를 읽으려면 마스터가 할당한 사용자 계정을 사용하세요.
슬레이브 서비스를 활성화하세요.
(무료 학습 동영상 튜토리얼 추천: mysql 동영상 튜토리얼)
준비
마스터 데이터베이스와 슬레이브 데이터베이스 버전이 동일한 것이 가장 좋습니다
마스터 데이터베이스와 슬레이브 데이터베이스의 데이터는 일관성이 있어야 합니다
마스터 데이터베이스: 192.168.244.201: 3306
슬레이브 데이터베이스: 192.168.244.202: 3306
구성 시작
마스터 메인 서버 구성
구성 파일 찾기 my.c nf(Windows의 my.ini ) 마스터 데이터베이스 중 내 파일은 /etc/my.cnf에 있습니다.
[mysqld] 섹션에 다음 두 줄을 삽입하세요.
[mysqld] log-bin=mysql-bin #开启二进制日志 server-id=201 #设置server-id,唯一值,标识主机
Mysql 서비스를 다시 시작하세요
systemctl restart mysqld
마스터-슬레이브에 대한 계정/비밀번호 만들기 동기화
MySQL 입력: mysql -u root -p Enter 비밀번호를 입력하세요.
제가 만든 사용자 이름은 "master_root"이고 비밀번호는 "MySql@6688"
[참고: 간편 비밀번호 123456을 지원하도록 비밀번호가 변경되었기 때문에 여기서 신규 사용자를 생성할 때 문제가 좀 있습니다. 비밀번호가 정책을 준수하지 않습니다. 잠깐만요. 나중에 간단히 mysql을 다시 설치하고 기본 복잡한 비밀번호를 사용했는데 더 이상 문제가 없었습니다. 실제로 익숙해지는 것이 좋습니다. 】
아래 %를 사용하고 있으며, 구체적인 IP는 적지 않았으니 직접 결정하시면 됩니다.
#创建用户(IP为可访问该master的IP,任意IP就写'%') mysql> CREATE USER 'master_root'@'192.168.244.202' IDENTIFIED BY 'MySql@6688'; #分配权限(IP为可访问该 master的IP,任意IP就写'%') mysql> GRANT REPLICATION SLAVE ON *.* TO 'master_root'@'192.168.244.202'; #刷新权限 mysql>flush privileges;
마스터 상태를 확인하고 바이너리 파일명(mysql-bin.000001)과 위치(154)를 기록해두세요. 나중에 슬레이브 라이브러리를 구성할 때 사용됩니다.
show master status;
슬레이브 메인 서버 구성
my.cnf 파일 수정
vim /etc/my.cnf
[mysqld] server-id=202 #设置server-id,唯一值,唯一标识从库
mysql 서비스 재시작
systemctl restart mysqld
mysql에 로그인하고 동기화 sql 문 실행(main 서버 이름 , 마스터-슬레이브에 사용됨 사용자 이름, 비밀번호, 바이너리 파일 이름, 위치)
mysql> CHANGE MASTER TO -> MASTER_HOST='192.168.244.201', -> MASTER_USER='master_root', -> MASTER_PASSWORD='MySql@6688', -> MASTER_LOG_FILE='mysql-bin.000001', -> MASTER_LOG_POS=154;
슬레이브 동기화 프로세스 시작
mysql>start slave;
슬레이브 상태 확인
show slave status\G
세미콜론을 따르지 않도록 주의하세요. 마지막 줄에는 다음과 같은 오류가 표시됩니다.
ERROR: No query specified
Slave_IO_Running과 Slave_SQL_Running이 모두 YES인 경우 마스터-슬레이브 동기화 설정이 성공한 것입니다.
그런 다음 마스터 데이터베이스의 테스트 데이터베이스에 있는 테이블에 데이터 조각을 삽입하고 마스터 데이터베이스를 확인하기 위해 슬레이브 테스트 데이터베이스의 동일한 데이터 테이블에 새 데이터가 있는지 확인하는 등 몇 가지 확인을 수행할 수 있습니다. 슬레이브 복제 기능이 유효하면 슬레이브를 닫은 다음(mysql>stop 슬레이브;) 마스터를 수정하여 슬레이브가 그에 따라 수정되었는지 확인할 수도 있습니다(슬레이브를 중지한 후에는 마스터의 수정 사항이 적용되지 않습니다). 슬레이브에 동기화) 그러면 마스터-슬레이브 복제 기능의 검증이 완료될 수 있습니다.
기타 관련 매개변수:
바이너리 로그를 켜면 마스터는 기본적으로 모든 데이터베이스와 모든 테이블의 작업을 기록하도록 지정할 수 있습니다. 특히 mysql 구성 파일의 [mysqld]에서 다음 옵션을 추가하고 수정할 수 있습니다.
동기화되지 않은 데이터베이스
binlog-ignore-db = mysql binlog-ignore-db = test binlog-ignore-db = information_schema
동기화되는 데이터베이스만, 추가로 다른 데이터베이스는 동기화되지 않습니다
binlog-do-db = game
이전에 마스터 상태를 보면 알 수 있듯이 매뉴얼과 mysql 라이브러리는 무시하고 테스트 라이브러리만 기록됩니다.
추천 관련 기사 및 튜토리얼: mysql 튜토리얼
위 내용은 Linux에서 mysql 마스터-슬레이브 서버 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!