gpt4 book ai didi

mariadb - 无法创建 MariaDB Galera 集群

转载 作者:行者123 更新时间:2023-12-04 16:06:36 33 4
gpt4 key购买 nike

我已经基于 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 地址与所示相同。
  • 为了确保容器之间的网络正常工作,尝试创建另一个可以登录到第一个容器的 mysql 实例的容器。
  • 这绝对与MYSQL_HOST无关
  • 要查看容器是否内存不足,我使用了 docker stats并看到失败的容器在其整个生命周期中仅使用了微薄的 142MB,直到它失败,这远小于它允许的总内存(~4GB)。
  • 我正在使用 Docker for Mac ,但尝试在 CentOS VirtualBox 上运行相同的程序并给出相同的结果。 Mac 上的 Docker 看起来没有问题。

  • 配置
    [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 进程开始之前唯一要做的就是创建和清空 mysql数据目录中的目录(默认为 /var/lib/mysql)。必须仅在除引导节点之外的所有节点上创建。

    mkdir -p /var/lib/mysql/mysql

    查看 sample MariaDB Cluster用于使用自定义 MariaDB 图像的用途,并且是创建集群的概念证明。

    关于mariadb - 无法创建 MariaDB Galera 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39744949/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com