Ubuntu16.04에서 MySql의 GR을 사용하는 방법에 대한 자세한 설명

黄舟
풀어 주다: 2017-03-29 13:14:29
원래의
2007명이 탐색했습니다.

본 글에서는 주로 ://www.php.cn/code/5320.html" target="_blank"> 의 GR, 이 글은

를 참고하시면 아주 자세하게 소개되어 있습니다. 1. 서문

이 글은 주로 순수 시스템에서 MySql 5.7.17을

설치하는 방법과 GR을 사용하여 나중에 보고 다른 사람들과 공유할 수 있도록 기록하는 것입니다

2. 설치.mysql

기본 우분투 소스가 최신 mysql이 아니기 때문에 다음 단계에 따라 최신 설치 패키지를 설치해야 합니다. 물론 여기서는 여전히 apt를 사용하여 설치합니다. 🎜>1. apt 저장소 다운로드

2. apt 저장소 설치

sudo dpkg -i mysql-apt-config_0.8.3-1_all.deb
로그인 후 복사

설치 과정에서 버전을 선택할 수 있는 인터페이스가 나타납니다. 첫 번째 버전을 선택하면 5.7이면 충분합니다. 물론 8.0을 선택할 수도 있습니다.

3. apt Warehouse를 업그레이드하고 mysql을 설치합니다

sudo apt-get update
sudo apt-get install mysql-server
로그인 후 복사

지금까지 최신 MySql 버전을 설치했습니다. , 아래 키 구성 부분을 먼저 읽어 보시고 직접 따르지 않는 것이 좋습니다.

먼저 /etc/mysql/에서 my.cnf 구성을 열고 다음 구성 정보를 작성하세요.

server_id=1
bind-address=0.0.0.0
gtid_mode=ON
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
transaction_write_set_extraction=XXHASH64
loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
loose-group_replication_start_on_boot=off
loose-group_replication_local_address= "10.0.0.4:24901"
loose-group_replication_group_seeds= "10.0.0.4:24901,10.0.0.5:24902,10.0.0.6:24903"
loose-group_replication_bootstrap_group= off
로그인 후 복사

설명하고 싶은 구성이 있는데, "server_id"는 각 머신이 모두 다르도록 해야 합니다. IP 주소의 네 번째 부분인 "loose-group_replication_group_nam"을 직접 사용해야 합니다. 이는 각 머신에서 일관되게 그룹을 식별하는 것과 동일합니다. 나머지 차이점은 "loose-group_replication_local_address" 매개변수입니다. "이것은 현재 머신의 IP 주소로 지정되어야 하며 다음 포트는 GR이 사용하는 포트를 나타냅니다. 모니터링이 필요합니다. "loose-group_replication_group_seeds" 매개변수에 있는 머신의 IP 주소와 포트가 다른 머신에서 정확하다면 포트를 임의로 수정할 수 있습니다. (이 포트는 mysql의 기본 포트 3306과 무관합니다.)

위 작업을 완료한 후 mysql 서비스를 다시 시작합니다

sudo service mysql restart
로그인 후 복사
2. 새 사용자를 생성합니다

먼저

mysql -u root -p
로그인 후 복사

에서 현재 데이터베이스에 연결합니다. 다음 SQL 문

 mysql> SET SQL_LOG_BIN=0;
 mysql> CREATE USER rpl_user@'%';
 mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass';
 mysql> FLUSH PRIVILEGES; #在从数据库不需要执行
 mysql> SET SQL_LOG_BIN=1;
mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' FOR CHANNEL 'group_replication_recovery';
로그인 후 복사

프로덕션 환경인 경우 사용자는 해당 계정과 비밀번호를 설정할 수 있습니다. 여기서 테스트를 위해서는 공식 계정을 직접 사용합니다.

3. 플러그인 설치

해당 SQL 문을 계속 실행합니다

mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';
로그인 후 복사

현재 플러그인이 설치되어 있는지 확인하려면 다음 문을 사용하세요

쿼리

mysql> SHOW PLUGINS;
로그인 후 복사

4. 호스트 구성

최종 GR을 시작하기 전에 해당 호스트를 수정하고 호스트 이름과 IP를 일치시켜야 합니다. 그렇지 않으면 나중에 다른 노드에 연결할 때 mysql은 호스트 이름에 의존하여 연결하기 때문에 연결이 불가능한 현상이 발생합니다.

호스트 열기

sudo vim /etc/hosts

다음 내용을 작성하세요(현재 환경과 컴퓨터 이름은 이렇습니다)

10.0.0.4 mysql-1
10.0.0.5 mysql-2
10.0.0.6 mysql-3
로그인 후 복사

완전 종료 위의 구성 후 mysql에 진입하여 계속 실행합니다

5. GR 켜기

다음 방법은 마스터 노드를 여는 방법입니다(처음 설치하는 경우에만 필요) 나중에는 필요하지 않습니다)

mysql> SET GLOBAL group_replication_bootstrap_group=ON;
mysql> START GROUP_REPLICATION;
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;
로그인 후 복사

슬레이브 노드에서 다음 문장을 실행하면 됩니다.

mysql> START GROUP_REPLICATION;
로그인 후 복사

현재 조인이 성공했는지 확인하려면 다음을 통해 확인할 수 있습니다. 문장:

mysql> SELECT * FROM performance_schema.replication_group_members;
로그인 후 복사

이제 모든 구성이 끝났습니다. 다른 슬레이브 노드는 위 단계만 따르면 됩니다. 테스트를 위해서는 마스터 노드에 새 데이터베이스를 생성하고, 테이블을 생성하고, 데이터를 작성하면 됩니다. 다른 데이터베이스도 동기화됩니다. 그런 다음 기본 노드를 닫은 후

명령문을 통해 현재 기본 노드인 노드를 쿼리할 수 있습니다.

mysql> select *from performance_schema.replication_group_members where member_id =(select variable_value from performance_schema.
global_status WHERE VARIABLE_NAME= 'group_replication_primary_member');
로그인 후 복사
Xamarin.

Android

-> -> 혼합-> Xamarin.Forms

위 내용은 Ubuntu16.04에서 MySql의 GR을 사용하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿