>  기사  >  데이터 베이스  >  Mysql 읽기-쓰기 분리란 무엇입니까? 마스터-슬레이브 데이터베이스를 설정하는 방법은 무엇입니까?

Mysql 읽기-쓰기 분리란 무엇입니까? 마스터-슬레이브 데이터베이스를 설정하는 방법은 무엇입니까?

不言
不言앞으로
2018-10-09 15:22:022518검색

이 기사에서는 Mysql 읽기-쓰기 분리가 무엇인지 설명합니다. 마스터-슬레이브 데이터베이스를 설정하는 방법은 무엇입니까? 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

읽기와 쓰기의 분리란 무엇인가요?

Mysql에는 추가, 삭제, 수정, 읽기의 네 가지 기능만 있습니다. 이렇게 하면 시스템 성능이 향상됩니다. 생각해 보세요. 판매는 물건만 파는 것으로 바뀌었고, 다른 사람들은 뒷문으로 이동합니다.
자주 고급스러워 보이는 것들도 만들기가 상당히 간단합니다.
다음은 초보자를 위한 내용입니다. 모두 매우 직관적인 조작입니다.

1. 구성:

mysql5.7과 같은 동일한 mysql 구성을 가진 두 대의 서버

PS: 조건이 제한되어 있으면 하나만 사용하면 됩니다. 두 개의 mysql 서비스(3306, 3307과 같은 다른 포트)를 설치하지만 이는 효율성을 위한 원래 의도와 약간 반대됩니다

2. 코드:

1 일반적으로 update, insert와 같은 mysql 작업 클래스를 읽고 씁니다. 그리고 * from 을 선택하면 코드 레이어에서 직접 라우팅 및 분리되어 서로 다른 서버에 대응하게 됩니다.

2. 미들웨어 에이전트, 즉 코드를 변경하지 않고 미들웨어가 마스터-슬레이브 서버에 읽기 및 쓰기 요청을 보냅니다.

이제 마스터-슬레이브 서버를 구성하는 방법에 대해 이야기해 보겠습니다.

1. 포트 열기: 대부분의 호스트는 기본적으로 MySQL 포트 3306을 사용하며, 먼저 두 시스템의 보안 그룹 또는 방화벽에서 포트 3306을 열고 다시 시작합니다. 포트가 열려 있습니다. 이제 두 개의 서버를 구성합니다(호스트 1개와 Mysql 서버 2개에도 동일).

아래 기본 IP: 192.168.0.1, 슬레이브 IP: 192.168.0.2, 동기화 계정 사양 생성, 비밀번호 spec_password를 다음과 같이 가져옵니다. 예:

메인 서버(추가, 삭제, 수정):

#1.Mysql配置改以下并重启服务(命令行里直接重启:service mysql restart)
[mysqld]
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index

#2.命令行mysql执行或phpmyadmin里执行:
GRANT REPLICATION SLAVE ON *.* TO 'spec'@'192.168.0.2' IDENTIFIED BY 'spec_password';
flush privileges;
이렇게 하면 메인 서버가 완성됩니다.

슬레이브 서버 구성 :

#1.Mysql配置改以下并重启服务(命令行里直接重启:service mysql restart)
[mysqld]
server-id=2
relay-log-index=slave-bin.index
relay-log=slave-bin

#2.命令行mysql执行或phpmyadmin里执行:
change master to master_host='192.168.0.1',master_port=3306,master_user='spec',master_password='spec_password',master_log_file='master-bin.000001',master_log_pos=0;
start slave
대체로 여기까지 구성이 완료되었습니다.

3. 테스트:

서버의 쿼리 문: 슬레이브 상태 표시

Slave_IO_State=마스터가 이벤트를 보낼 때까지 기다리는 중이면 성공할 것입니다.

나머지 상태는 일반적으로 다음과 같은 이유 때문에 발생합니다.


1. 마스터와 슬레이브의 보안 그룹이나 방화벽이 3306 포트를 열지 않습니다
2. 마스터와 슬레이브 사이의 ping이 작동하지 않습니다.

3. 위의 사양 계정 비밀번호가 잘못되었습니다


이제부터 추가, 삭제 또는

4. 제안 사항:

1. 슬레이브 서버는 데이터 동기화를 유지하는 것이 아니라 읽기만 수행한다는 점을 기억하세요. 한 서버에 장애가 발생하면 다른 서버에 충전이 가능합니다. (사실 메인 서버가 다운되면 최신 데이터 중 일부가 확실히 손실됩니다.)

2. 동기화 지연을 최소화하려면 슬레이브 서버의 대역폭이 마스터 서버 이상이어야 합니다. 작은 수도관인 경우 당연히 동기화가 한 단계 느려집니다.

위 내용은 Mysql 읽기-쓰기 분리란 무엇입니까? 마스터-슬레이브 데이터베이스를 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제