source

MariaDB Galera 클러스터를 생성할 수 없습니다.

goodcode 2023. 1. 9. 21:39
반응형

MariaDB Galera 클러스터를 생성할 수 없습니다.

이미지를 구축했습니다.mariadb:10.1기본적으로 새로운 것을 추가한다.cluster.conf첫 번째 노드가 정상적으로 동작하기 시작한 후 두 번째 노드에서 다음 오류가 발생합니다.누가 디버깅 좀 도와줄래?

오류 로그 테일

2016-09-28 10:12:55 139799503415232 [ERROR] WSREP: failed to open gcomm backend connection: 110: failed to reach primary view: 110 (Connection timed out)
     at gcomm/src/pc.cpp:connect():162
2016-09-28 10:12:55 139799503415232 [ERROR] WSREP: gcs/src/gcs_core.cpp:gcs_core_open():208: Failed to open backend connection: -110 (Connection timed out)
2016-09-28 10:12:55 139799503415232 [ERROR] WSREP: gcs/src/gcs.cpp:gcs_open():1380: Failed to open channel 'test_cluster' at 'gcomm://172.17.0.2,172.17.0.3,172.17.0.4': -110 (Connection timed out)
2016-09-28 10:12:55 139799503415232 [ERROR] WSREP: gcs connect failed: Connection timed out
2016-09-28 10:12:55 139799503415232 [ERROR] WSREP: wsrep::connect(gcomm://172.17.0.2,172.17.0.3,172.17.0.4) failed: 7
2016-09-28 10:12:55 139799503415232 [ERROR] Aborting

MySQL init process failed.

실행한 디버깅 절차

메모: 컨테이너의 IP 주소는 그림과 같게 되어 있습니다.

  1. 컨테이너 간의 네트워킹이 작동하도록 하기 위해 첫 번째 컨테이너의 mysql 인스턴스에 로그인할 수 있는 다른 컨테이너를 생성해 보았습니다.
  2. 이것은 결코 와는 관련이 없다.MYSQL_HOST
  3. 컨테이너의 메모리가 부족하지 않은지 확인하기 위해docker stats장애가 발생한 컨테이너는 장애가 발생할 때까지 라이프 사이클 내내 미미한 142MB만을 사용하고 있었습니다.이는 허용된 총 메모리(~4GB)보다 훨씬 적은 수치입니다.
  4. 사용하고 있다Docker for Mac단, Cent에서도 같은 동작을 시도했습니다.OS Virtual Box와 같은 결과를 얻을 수 있습니다.Docker on Mac에 문제가 있는 것 같진 않네요.

설정

[mysqld]
user=mysql
binlog_format=ROW
bind-address=0.0.0.0
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=122M
innodb_file_per_table=1
innodb_doublewrite=1
query_cache_size=0
query_cache_type=0
wsrep_on=ON
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_sst_method=rsync

컨테이너를 시작하는 단계

# bootstrap node
docker run --rm -e MYSQL_ROOT_PASSWORD=123 \ 
  activatedgeek/mariadb:devel \
    --wsrep-cluster-name=test_cluster \
    --wsrep-cluster-address=gcomm://172.17.0.2,172.17.0.3,172.17.0.4 \
    --wsrep-new-cluster

# add node into cluster
docker run --rm -e MYSQL_ROOT_PASSWORD=123 \ 
  activatedgeek/mariadb:devel \
    --wsrep-cluster-name=test_cluster \
    --wsrep-cluster-address=gcomm://172.17.0.2,172.17.0.3,172.17.0.4

# add node into cluster
docker run --rm -e MYSQL_ROOT_PASSWORD=123 \ 
  activatedgeek/mariadb:devel \
    --wsrep-cluster-name=test_cluster \
    --wsrep-cluster-address=gcomm://172.17.0.2,172.17.0.3,172.17.0.4

이 문제는 행업으로 인해 발생합니다.init process위의 설정과 CLI 인수는 정확합니다.init 프로세스가 시작되기 전에 해야 할 일은 작성 및 비우는 것뿐입니다.mysqldirectory(/var/lib/mysql디폴트).는 부트스트랩노드를 제외한 모든 노드에만 작성해야 합니다.

mkdir -p /var/lib/mysql/mysql

사용자 지정 MariaDB 이미지를 사용하고 클러스터를 생성하는 개념 증명인 사용 방법에 대해서는 샘플 MariaDB 클러스터를 참조하십시오.

컨테이너가 필요한 포트를 노출해야 합니다.

-p 3306:3306 -p 4444:4444 -p 4567:4567 -p 4568:4568

또는 그래야 한다--link (ed)함께.

언급URL : https://stackoverflow.com/questions/39744949/unable-to-create-mariadb-galera-cluster

반응형