기반 고정 표시기 달성 mariadb 갈레 클러스터

환경 구성 :

노드 이름 IP 주소
node01 192.168.10.207
node02 192.168.10.167

기본 환경 설정 :

  1. 삭제 firewalld
yum remove firewalld -y
  1. 닫기 SELinux를
sudo vim  /etc/selinux/config

: 다음 수정
SELINUX = 사용 안 함

  1. 설치의 iptables-서비스, bash는 완성
yum install -y iptables-services bash-completion
systemctl enable iptables
systemctl start iptables
iptables -F
service iptables save
systemctl restart iptables
  1. 호스트 호스트 이름 해상도를 추가
cat /etc/hosts
192.168.10.207	node01
192.168.10.167 node02
  1. 추가 원하는 mariadb의 iptables 룰
iptables -A INPUT -p tcp -m multiport --dport 3306,4567,4444 -j ACCEPT

클러스터 배포 갈레

최신 고정 표시기 미러 mariadb 다운로드 1. 10.3.10

docker pull mariadb:10.3.10

, 디렉토리 데이터베이스 요구 사항을 작성합니다 mariadb 프로필과 mariadb 데이터를 저장하기

mkdir -p /opt/mariadb/conf
mkdir -p /opt/mariadb/data

노드 1 노드 동작 :
1. 첫 번째 실행 mariadb, 실행 노드 node01 목적. 호스트에 복사 MariaDB 구성 파일, / 옵션 / mariadb / 데이터 디렉토리에 데이터베이스 파일 생성
도커 RUN을 -d
-name MariaDB-amdha01
-v / 옵션 / mariadb / 데이터의 경우 : / var / lib 디렉토리 / MySQL을
-e MYSQL_ROOT_PASSWORD = 123456
MariaDB : 10.3.10
2. 복사 MariaDB 컨테이너 구성 파일에 / 옵션 / mariadb / conf의 디렉토리

docker cp mariadb-node01:/etc/mysql /opt/mariadb/conf

이동 컨테이너와 MySQL의 권한 데이터베이스의 MySQL 데이터베이스 명령 행동에 대한 3. 원격 방문을 주어

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '' WITH GRANT OPTION;

4. 종료 용기 (어머니 필수 / 옵션 / mariadb은 / 데이터 디렉토리 데이터 파일에서 데이터베이스를 생성하기 전에 컨테이너 제거) 컨테이너를 제거

docker sotp mariadb-node01 && docker rm mariadb-node01

5. 수정 복사 / 옵션 / mariadb / my.cnf의 구성 파일 디렉토리의 conf [갈레] 구성 섹션

[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.10.207:4567,192.168.10.167:4567
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=192.168.10.207
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0

매개 변수 새로운 클러스터 -wsrep 추가 할 첫 번째 클러스터 데이터베이스를 필요로 시작하는 6 번째 부팅 mariadb 컨테이너 node01 노드,

docker run -d \
--name mariadb-node01 \
-p 3306:3306 \
-p 4567:4567 \
-p 4444:4444 \
-v /opt/mariadb/conf:/etc/mysql \
-v /opt/mariadb/data/:/var/lib/mysql \
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes  \
-e TIMEZONE=Asia/Shanghai \
mariadb:10.3.10 --wsrep-new-cluster

node02 노드 작업
1. 첫 번째 실행 mariadb, 실행 노드 node02 목적. 호스트에 복사 MariaDB 구성 파일, / 옵션 / mariadb / 데이터 디렉토리에 데이터베이스 파일을 생성

docker run -d \
--name mariadb-node02 \
-v /opt/mariadb/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mariadb:10.3.10

에 / 옵션 / mariadb / conf의 디렉토리에 복사합니다 mariadb 컨테이너 구성 파일

docker cp mariadb-node02:/etc/mysql /opt/mariadb/conf

컨테이너에와 MySQL의 권한 데이터베이스의 MySQL 데이터베이스 명령 행동에 대한 3 원격 방문을 주어

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '' WITH GRANT OPTION;

4. 종료 용기 (어머니 필수 / 옵션 / mariadb은 / 데이터 디렉토리 데이터 파일에서 데이터베이스를 생성하기 전에 컨테이너 제거) 컨테이너를 제거

docker sotp mariadb-node02 && docker rm mariadb-node02

5. 수정 복사 / 옵션 / mariadb / my.cnf의 구성 파일 디렉토리의 conf [갈레] 구성 섹션

[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.1010.207:4567,192.168.10.167:4567
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=192.168.10.167
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0

매개 변수 새로운 클러스터 -wsrep 추가 할 첫 번째 클러스터 데이터베이스를 필요로 시작하는 6 번째 부팅 mariadb 컨테이너 node01 노드,

docker run -d \
--name mariadb-node02 \
-p 3306:3306 \
-p 4567:4567 \
-p 4444:4444 \
-v /opt/mariadb/conf:/etc/mysql \
-v /opt/mariadb/data/:/var/lib/mysql \
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes  \
-e TIMEZONE=Asia/Shanghai \
mariadb:10.3.10 --wsrep-new-cluster

확인 갈레 클러스터가 제대로 작동

show status like '%wsrep%';

링크

게시 44 개 원래 기사 · 원의 칭찬 0 · 조회수 940

추천

출처blog.csdn.net/qq_39122146/article/details/104070832