CentOS 7에서 MySQL 클러스터를 설치하고 구성하는 방법

CentOS 7에서 MySQL 클러스터를 설치하고 구성하는 방법

MySQL Cluster는 고 가용성 및 낮은 대기 시간을 갖춘 MySQL 호환 데이터베이스를 제공하도록 설계되었습니다. MySQL 클러스터 기술은 NDB (Network DataBase) 및 NDBCLUSTER 스토리지 엔진을 통해 구현되며 MySQL 데이터베이스 시스템에 비공유 클러스터링 및 자동 샤딩을 제공합니다. 비공유 아키텍처에서는 노드마다 고유 한 메모리와 디스크가 있으므로 NFS, SAN과 같은 공유 스토리지를 사용하는 것은 권장되지 않으며 지원되지 않습니다.

MySQL 클러스터를 구현하려면 세 가지 유형의 노드를 설치해야합니다. 각 노드 유형은 자체 서버에 설치됩니다. 구성 요소는 다음과 같습니다.

1. 관리 노드 - NDB_MGMD / MGM
클러스터 관리 서버는 클러스터의 다른 노드를 관리하는 데 사용됩니다. 관리 노드에서 클러스터의 새 노드를 만들고 구성하고, 다시 시작하고, 삭제하거나 백업 할 수 있습니다.
2. 데이터 노드 - NDBD / NDB
이것은 노드 간의 동기화 및 데이터 복제 프로세스가 이루어지는 계층입니다.
3. SQL 노드 - MySQLD / API
응용 프로그램이 데이터베이스 클러스터에 연결하는 데 사용하는 인터페이스 서버입니다.

이 튜토리얼에서는 centOS 7을 사용하여 MySQL 클러스터를 설치하고 구성하는 방법을 안내합니다. 관리 노드, 두 개의 데이터 노드 및 두 개의 SQL 노드를 구성합니다.

전제 조건

  • OS는 CentOS 7 - 64bit입니다.
  • 5 CentOS 서버 또는 가상 머신. 아래와 같이 호스트 이름과 IP 주소를 사용합니다.
  • 관리 노드
    db1 = 192.168.1.120
  • 데이터 노드
    db2 = 192.168.1.121
    db3 = 192.168.1.122
  • SQL 노드
    db4 = 192.168.1.123
    db5 = 192.168.1.124

1 - 설치 관리 노드

첫 번째 단계는 CentOS 7로 "관리 노드"를 생성하는 것입니다. db1 및 IP 192.168.1.120. 루트 사용자로 db1 서버에 로그인했는지 확인하십시오.

A. MySQL Cluster 소프트웨어 다운로드

wget을 사용하여 MySQL 사이트에서 다운로드 할 것이다. CentOS 7와 호환되는 "Red Hat Enterprise Linux 7 / Oracle Linux 86 (x64, 7-bit), RPM 번들"을 사용하고 있습니다. 그런 다음 tar 파일을 추출하십시오.

CD ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

MySQL 클러스터 패키지 rpm을 설치하십시오.

B. 패키지 설치 및 제거

MySQL Cluster 용 rpm 패키지를 설치하기 전에, perl-Data-Dumper 이는 MySQL-Cluster 서버에 필요합니다. 그리고 당신은 mariadb-libs MySQL Cluster를 설치하기 전에.

yum -y install perl-Data-Dumper
yum -y mariadb-libs 제거

C. MySQL 클러스터 설치

다음 rpm 명령으로 MySQL Cluster 패키지를 설치하십시오 :

CD ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

오류가 없는지 확인하십시오.

D. MySQL 클러스터 구성

구성 파일에 대한 새 디렉토리를 작성하십시오. "/ var / lib / mysql-cluster"디렉토리를 사용하겠습니다.

mkdir -p / var / lib / mysql-cluster

그런 다음 클러스터 관리를 위해 "config.inimysql-cluster 디렉토리에있다.

cd / var / lib / mysql-cluster
vi config.ini

아래 구성을 붙여 넣으십시오.

[ndb_mgmd default] # MGM 노드 로그 파일 용 디렉토리 DataDir = / var / lib / mysql-cluster [ndb_mgmd] # 관리 노드 db1 HostName = 192.168.1.120 [기본값 ndbd] NoOfReplicas = 2 # 복제본 수 DataMemory = 256M # 메모리 할당량 저장소 IndexMemory = 128M # 데이타 저장을위한 메모리 할당 #Directory DataDir = / var / lib / mysql-cluster [ndbd] # 데이터 노드 db2 HostName = 192.168.1.121 [ndbd] # 데이터 노드 db3 HostName = 192.168.1.122 [mysqld] #SQL 노드 db4 호스트 이름 = 192.168.1.123 [mysqld] #SQL 노드 db5 호스트 이름 = 192.168.1.124

파일을 저장하고 종료하십시오.

E. 관리 노드 시작

그런 다음 아래 명령을 사용하여 관리 노드를 시작하십시오.

ndb_mgmd -config-file = / var / lib / mysql-cluster / config.ini

결과는 다음과 유사해야합니다.

MySQL 클러스터 관리 서버 mysql-5.6.28 ndb-7.4.10
2016-03-22 19 : 26 : 08 [MgmtSrvr] 정보 - 기본 설정 디렉토리 '/ usr / mysql-cluster'가 존재하지 않습니다. 그것을 만들기 위해 노력 중 ...
2016-03-22 19 : 26 : 08 [MgmtSrvr] 정보 - 구성 디렉토리를 성공적으로 생성했습니다.

관리 노드가 시작되었으므로 이제 "ndb_mgm"명령을 사용하여 노드를 모니터링 할 수 있습니다.

ndb_mgm
표시

클러스터 상태를 확인하십시오.

관리 노드가 시작되었다는 것을 알 수 있습니다 : mysql-6.6 및 ndb-7.4.

2 - MySQL 클러스터 데이터 노드 설정

우리는 데이터 노드에 2 CentOS 서버를 사용할 것입니다.

  1. db2 = 192.168.1.121
  2. db3 = 192.168.1.122

A. 루트 사용자로 로그인하고 MySQL 클러스터 소프트웨어를 다운로드하십시오.

ssh를 사용하여 db2 서버에 로그인하십시오.

ssh [email protected]

그런 다음 MySQL Cluster 패키지를 다운로드하고 압축을 풉니 다.

CD ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

B. 패키지 설치 및 제거

perl-Data-Dumper를 설치하고 mariadb-libs를 제거하십시오 :

yum -y install perl-Data-Dumper
yum -y mariadb-libs 제거

C. MySQL 클러스터 설치

이제 우리는 이러한 rpm 명령을 사용하여 데이터 노드 용 MySQL 클러스터 패키지를 설치할 수 있습니다.

CD ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

오류가 없는지 확인하십시오.

D. 데이터 노드 구성

vi 편집기를 사용하여 / etc 디렉토리에 새 구성 파일을 작성하십시오.

vi /etc/my.cnf

아래의 구성 붙여 넣기 :

[mysqld] ndbcluster ndb-connectstring = 192.168.1.120 # 관리 노드의 IP 주소 [mysql_cluster] ndb-connectstring = 192.168.1.120 # 관리 노드의 IP 주소

파일을 저장하고 종료하십시오.

그런 다음 관리 노드 구성 파일 "config.ini"에서 정의한 데이터베이스 데이터의 새 디렉토리를 만듭니다.

mkdir -p / var / lib / mysql-cluster

이제 데이터 노드 / ndbd를 시작합니다.

ndbd

결과 :

2016 - 03 - 22 19 : 35 : 56 [정보] - 천사가 '192.168.1.120 : 1186'에 연결되었습니다.
2016-03-22 19 : 35 : 56 [ndbd] 정보 - 엔젤 할당 nodeid : 2

MySQL 클러스터 노드가 온라인 상태입니다.

데이터 노드 db2는 관리 노드 ip 192.168.1.120에 연결됩니다.

E. db2 서버에서 2.A-3.D 단계를 다시 실행하십시오.

2 데이터 노드가 있으므로 두 번째 데이터 노드에서 2.A-2.D 단계를 다시 실행하십시오.

Step 3 - SQL 노드 설정

여기에는 데이터베이스에 대한 응용 프로그램 액세스를 제공하는 SQL 노드에 대한 설정이 들어 있습니다. 우리는 SQL 노드에 2 CentOS 서버를 사용합니다 :

  1. db4 = 192.168.1.123
  2. db5 = 192.168.1.124

A. 로그인하고 MySQL 클러스터 다운로드

root 사용자로 db4 서버에 로그인하십시오.

ssh [email protected]

MySQL Cluster 패키지를 다운로드하십시오 :

CD ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

B. 패키지 설치 및 제거

Perl-Data-Dumper를 설치하고 MySQL 클러스터와 충돌하는 mariadb-lib를 제거하십시오.

yum -y install perl-Data-Dumper
yum -y mariadb-libs 제거

C. MySQL 클러스터 설치

아래의 rpm 명령으로 MySQL Cluster 서버, 클라이언트 및 공유 패키지를 설치하십시오 :

CD ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

D. SQL 노드 구성

/ etc 디렉토리에 새로운 my.cnf 파일을 만듭니다.

vi /etc/my.cnf

아래 설정을 붙여 넣으세요.

[mysqld] ndbcluster ndb-connectstring = 192.168.1.120 # 서버 관리 노드의 IP 주소 default_storage_engine = ndbcluster # MySQL에서 사용하는 기본 저장소 엔진 정의 [mysql_cluster] ndb-connectstring = 192.168.1.120 # 서버 관리 노드의 IP 주소

파일을 저장하고 편집기를 종료하십시오.

MySQL 서버를 시작하여 SQL 노드를 시작하십시오.

mysql start 서비스

E. db3 서버에서 3.A-5.D 단계를 다시 실행하십시오.

두 번째 SQL 서버 (db3)에서 단계 3.A - 5.D를 다시 실행하십시오.

4 단계 - 클러스터 모니터링

클러스터 상태를 보려면 db1 관리 노드에 로그인해야합니다.

ssh [email protected]

ndb_mgm 명령을 사용하여 클러스터 상태를 볼 수 있습니다 :

ndb_mgm
ndb_mgm> 쇼

NDB clsuter 상태를 확인하십시오.

또 다른 유용한 명령은 다음과 같습니다.

ndb_mgm -e "모든 상태"
ndb_mgm -e "모든 리포트 메모리"

5 - 클러스터 테스트

새 MySQL 클러스터에서 테스트를 수행하려면 SQL 노드 db4 또는 db5 서버에 로그인해야합니다.

db4 서버에 로그인하십시오.

ssh [email protected]

"MySQL 데이터베이스에 저장된 기본 MySQL 암호 변경".mysql_secret"루트 디렉토리의 파일 :

CD ~
고양이 .mysql_secret

이것은 내 샘플이다.

# Tue Mar 22 19 : 44 : 07 2016 (현지 시간) : qna3AwbJMuOnw23T에서 루트 사용자에 대해 설정된 임의 암호

이제 아래 명령을 사용하여 암호를 변경하십시오.

mysql_secure_installation

기존의 mysql 암호를 입력 한 다음 새 암호를 입력하고 Enter 키를 눌러 모두 확인하십시오.

모든 작업이 끝나면 암호로 MySQL 쉘에 로그인 할 수 있습니다 :

mysql -u root -p

로그인 한 후 호스트가 "@", 그래서 우리는 외부에서 MySQL에 액세스 할 수 있습니다.

CREATE USER 'root'@ '%'IDENTIFIED BY 'aqwe123';

교체 aqwe123 자신의 보안 암호로! 이제 MySQL 사용자 목록에서 호스트 "@"를 가진 새로운 루트 사용자를 볼 수 있습니다 :

mysql.user에서 사용자, 호스트, 암호를 선택하십시오;

그리고 새로운 루트 사용자에게 원격 노드로부터 읽기 및 쓰기 권한을 부여하십시오 :

모든 권한 부여 *. * 'root'@ '%' '* 94CC7BF027327993DXNXXNNXX ... (암호화 된 비밀번호)'와 (과) 동일한 자격 증명;

priveliges를 부여하십시오.

이제 db4 서버에서 새 데이터베이스를 만들려고하면 db5에서도 데이터베이스가 표시됩니다.

이는 클러스터 데이터 복제를 테스트하기위한 샘플 결과 일뿐입니다.

모든 노드가 온라인 상태입니다.

MySQL 클러스터는 7 서버 노드가있는 CentOS 5에서 성공적으로 설정되었습니다.

결론

MySQL 클러스터는 MySQL 데이터베이스에 고 가용성 및 중복성을 제공하는 기술입니다. 스토리지 엔진으로 NDB 또는 NDBCLUSTER를 사용하며 MySQL 데이터베이스에 대해 비공유 클러스터링 및 자동 샤딩을 제공합니다. 클러스터를 구현하려면 관리 노드 (MGM), 데이터 노드 (NDB) 및 SQL 노드 (API)와 같은 3 구성 요소가 필요합니다. 각 노드에는 자체 메모리와 디스크가 있어야합니다. NFS와 같은 네트워크 저장소는 사용하지 않는 것이 좋습니다. CentOS 7 최소 시스템에 MySQL 클러스터를 설치하려면 mariadb-libs 패키지를 제거해야하며 mariadb-libs는 MySQL-Cluster-server와 충돌하며 perl-Data-Dumper 패키지를 설치해야합니다. 이는 MySQL-Cluster에서 필요합니다. -섬기는 사람. MySQL Cluster는 여러 CentOS 서버에서 설치 및 구성하기 쉽습니다.

관련 포스트

댓글을 남겨주세요.

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터 처리 방법 알아보기.