이 기사에서는mysql에 대한 관련 지식을 제공하며, 마스터-슬레이브 복제 아키텍처를 빠르게 구축하는 방법에 대한 관련 문제를 주로 소개합니다. MySQL 데이터베이스에서 제공하는 마스터-슬레이브 복제 기능은 여러 서버에서 자동 데이터 복제를 쉽게 구현할 수 있습니다. 백업은 데이터베이스 확장을 가능하게 하고 데이터 보안을 크게 향상시켜 모든 사람에게 도움이 되기를 바랍니다.
추천 학습:mysql 튜토리얼
마스터-슬레이브 복제는 읽기-슬레이브의 전제 조건입니다. 이별을 쓰세요. MySQL 데이터베이스가 제공하는 마스터-슬레이브 복제 기능은 여러 서버의 데이터 자동 백업을 쉽게 구현하고 데이터베이스 확장을 실현하며 데이터 보안을 크게 향상시킬 수 있습니다. 동시에 마스터-슬레이브 복제가 구현된 후 읽기-쓰기 분리를 구현하여 데이터베이스의 로드 성능을 더욱 향상시킬 수 있습니다.
그림과 같이 마스터-슬레이브 복제의 대략적인 구현 과정을 보여줍니다.
읽기-쓰기 분리는 마스터-슬레이브 복제를 기반으로 합니다. 데이터베이스의 마스터-슬레이브 복제를 구현해야만 읽기-쓰기 분리가 더욱 실현될 수 있습니다. 읽기-쓰기 분리는 모든 쿼리 작업이 하위 데이터베이스에서 수행되고 모든 쓰기 작업이 기본 데이터베이스에서 수행된다는 의미로 이해할 수 있습니다. 메인 데이터베이스에 데이터를 기록한 후 마스터-슬레이브 복제를 통해 하위 데이터베이스에 데이터를 백업하여 데이터 일관성을 보장합니다.
먼저 마스터-슬레이브 복제의 원리를 이해해 보겠습니다.
원칙을 이해한 후 마스터-슬레이브 복제를 활성화하기 위한 전제 조건을 알아야 합니다.
마스터 노드는 binlog를 활성화해야 합니다(mysql은 기본적으로 binlog를 활성화하지 않습니다)
슬레이브 노드, binlog 파일을 만들고 동기화합니다. 오프셋
은 마스터 노드의 IP를 지정합니다
마스터 노드를 실행하기 위한 사용자 이름과 비밀번호
이제 모두 대략적으로 이해했으니 하나를 만들어 보겠습니다. 마스터-원-슬레이브 데이터베이스 모델 및 이를 시연합니다. 데이터베이스 마스터-슬레이브 설정의 구성 프로세스입니다.
CentOS 서버 2대를 준비하고 mysql5.7을 미리 설치해주세요.
mysql의 my.cnf 파일 편집: (설치 방법에 따라 파일 위치가 다를 수 있으며 특정 문제는 자세히 분석됩니다~)
vim /etc/my.cnf
원본 파일에 없음 다음 콘텐츠를 직접 추가해야 합니다. 여기서 나의 목적은 myslave 데이터베이스에서 데이터의 마스터-슬레이브 복제를 수행하는 것입니다
server-id = 1 #server-id 服务器唯一标识log_bin = master-bin #log_bin 启动MySQL二进制日志log_bin_index = master-bin.index binlog_do_db = myslave #binlog_do_db 指定记录二进制日志的数据库 这两个指定可以不添加binlog_ignore_db = mysql #binlog_ignore_db 指定不记录二进制日志的数据库
다음 명령을 사용하여 mysql을 다시 시작하세요. Linux 버전마다 명령이 다를 수 있습니다.
service mysql restart
성공적인 시작 후 다음 명령문을 통해 bin-log 열림 상태를 확인할 수 있습니다. (Navicat에서 직접 쿼리하면 됩니다.)
show variables like 'log_bin%';
#允许远程用户访问 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.221.131' IDENTIFIED BY '123456' WITH GRANT OPTION; #刷新 FLUSH PRIVILEGES;
show master status;
관련 구성 수정
vim /etc/my.cnf
관련 정보 추가:
server-id = 2 #唯一标识relay-log = slave-relay-bin relay-log-index = slave-relay-bin.index replicate-do-db=myslave #备份数据库 对应master中设置的,可以不设置replicate-ignore-db=mysql #忽略数据库
서비스를 다시 시작하는 것을 잊지 마세요.
service mysql restart
슬레이브 노드에서 다음 명령을 실행하세요.
change master to master_host='192.168.221.128',master_user='root',master_password='123456',master_log_file='binlog.000009',master_log_pos=2339;
master_log_file은 첫 번째 단계에서 얻은 파일 이름입니다.
master_log_pos는 첫 번째 단계에서 얻은 동기화 위치입니다.
슬레이브 동기화 시작
start slave;
동기화 상태를 확인하고 아래 그림은 마스터-슬레이브 동기화가 성공적으로 이루어졌음을 나타냅니다. 테이블 테스트는 기본 데이터베이스에서 생성될 수 있습니다.
show slave status\G
추천 학습:mysql 학습 튜토리얼
위 내용은 마스터-슬레이브 복제 아키텍처를 신속하게 구축하기 위한 MySQL의 상세한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!