【问题标题】:mariadb 10.1.13 galera cluster : errormariadb 10.1.13 galera 集群:错误
【发布时间】:2023-09-10 18:33:01
【问题描述】:

mariadb 10.1.x galera 集群设置。

第一个节点 192.168.159.132

/etc/mysql/my.cnf

[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.159.132,192.168.159.135,192.168.159.136
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2

第一个节点 192.168.159.132

$ sudo 服务 mysql 引导

* Bootstrapping the cluster mysqld
Starting mysql (via systemctl): mysql.service
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.

$ systemctl status mariadb.service

[ERROR] WSREP: gcs/src/gcs_core.cpp:gcs_core_open():208: Failed to open backend connection: -110 (Connection timed out)
[ERROR] WSREP: gcs/src/gcs.cpp:gcs_open():1379: Failed to open channel 'my_wsrep_cluster' at 'gcomm://192.168.32.251,192.168.32.252,192.168.32...ection timed out)
[ERROR] WSREP: gcs connect failed: Connection timed out
[ERROR] WSREP: wsrep::connect(gcomm://192.168.32.251,192.168.32.252,192.168.32.253) failed: 7
[ERROR] Aborting
systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start MariaDB database server.
systemd[1]: mariadb.service: Unit entered failed state.
systemd[1]: mariadb.service: Failed with result 'exit-code'.

为什么“Galera Cluster”没有启动?

如何查看“连接超时”?

【问题讨论】:

    标签: mysql cluster-computing mariadb galera


    【解决方案1】:

    您的配置中有错误。在 gcom 之后你只使用一个 : like:

    wsrep_cluster_address=gcomm://192.168.159.132,192.168.159.135,192.168.159.136
    

    【讨论】:

    • 见上文:错误“连接超时”
    【解决方案2】:

    您收到“连接超时”,因为该节点正在尝试连接到 wsrep_cluster_address 中列出的其他节点,这些节点不在线,因为这是集群中的第一个节点。因此,在引导期间,您应该使用空的 wsrep_cluster_address 启动第一个节点:.wsrep_cluster_address='gcomm://'

    【讨论】:

      【解决方案3】:

      他们是一个错误:

      使用如下格式:

      wsrep_cluster_address="gcomm://first_ip,second_ip,third_ip"
      

      【讨论】:

        【解决方案4】:

        galera 配置看起来不错。但是你必须在引导第一个节点时提供一个额外的参数。试试这个:

        mysqld --wsrep-new-cluster
        

        对于第一个节点wsrep_cluster_address 可以为空。对于下一个节点,您必须提供至少一个已经是集群一部分的 IP 地址。但最好提供您将要使用的所有节点的列表。提及集群地址中尚未出现在集群中的节点时,它不会给您任何错误。所以你可以为每个节点使用wsrep_cluster_address=gcomm://192.168.159.132,192.168.159.135,192.168.159.136

        【讨论】: