9

我正在尝试在 debian 8 jessie 下使用 MariaDB Galera 10.1。

我已经安装了所有必需的组件并进行了配置,但我无法让它工作。

节点构建为 VPS。

节点1的配置:

[mysqld]

# Cluster node configurations
wsrep_cluster_address="gcomm://172.16.0.102,172.16.0.112"
wsrep_node_address="172.16.0.102"
wsrep_node_name='n1' 
wsrep_cluster_name='cluster'
innodb_buffer_pool_size=400M
# Mandatory settings to enable Galera
wsrep_provider=/usr/lib/galera/libgalera_smm.so
binlog_format=ROW
default-storage-engine=InnoDB
innodb_autoinc_lock_mode=2
innodb_doublewrite=1
query_cache_size=0
bind-address=0.0.0.0
# Galera synchronisation configuration
wsrep_sst_method=rsync

节点2的配置:

[mysqld]

# Cluster node configurations
wsrep_cluster_address="gcomm://172.16.0.102,172.16.0.112"
wsrep_node_address="172.16.0.112"
wsrep_node_name='n2' 
wsrep_cluster_name='cluster'
innodb_buffer_pool_size=400M
# Mandatory settings to enable Galera
wsrep_provider=/usr/lib/galera/libgalera_smm.so
binlog_format=ROW
default-storage-engine=InnoDB
innodb_autoinc_lock_mode=2
innodb_doublewrite=1
query_cache_size=0
bind-address=0.0.0.0
# Galera synchronisation configuration
wsrep_sst_method=rsync

当我尝试在节点 1 引导命令上运行时

service mysql bootstrap

它因错误而失败

May 13 15:59:28 test mysqld[2397]: 2016-05-13 15:59:28  139843152635840 [ERROR] WSREP: failed to open gcomm backend connection: 110: failed to reach primary view: 110 (Connection timed out)
May 13 15:59:28 test mysqld[2397]: at gcomm/src/pc.cpp:connect():162
May 13 15:59:28 test mysqld[2397]: 2016-05-13 15:59:28 139843152635840 [ERROR] WSREP: gcs/src/gcs_core.cpp:gcs_core_open():208: Failed to open backend connection: -110 (Connection timed out) 
May 13 15:59:28 test mysqld[2397]: 2016-05-13 15:59:28 139843152635840 [ERROR] WSREP: gcs/src/gcs.cpp:gcs_open():1379: Failed to open channel 'cluster' at 'gcomm://172.16.0.102,172.16.0.112': -110 (Connection timed out)
May 13 15:59:28 test mysqld[2397]: 2016-05-13 15:59:28 139843152635840 [ERROR] WSREP: gcs connect failed: Connection timed out
May 13 15:59:28 test mysqld[2397]: 2016-05-13 15:59:28 139843152635840 [ERROR] WSREP: wsrep::connect(gcomm://172.16.0.102,172.16.0.112) failed: 7
May 13 15:59:28 test mysqld[2397]: 2016-05-13 15:59:28 139843152635840 [ERROR] Aborting

我正在使用的网络配置是私有的:

安装了 ProxmoxVE 4.0 的 2x 专用服务器,位于 vRack 网络中的服务器在 VPS 上配置为:

node1: 172.16.0.102 //节点1在服务器1上

node2: 172.16.0.112 //节点2在服务器2上

他们能够在专用网络上相互ping通。

4

5 回答 5

22

从 MariaDB 10.1.8 开始,systemd是新的 init,它会影响 Galera 在基于 RPM 和 Debian 的 Linux 发行版(在我的例子中是 Ubuntu 16.04)上的引导方式。在以前的版本中,您会使用类似service mysql start --wsrep-new-clusteror的东西,service mysqld bootstrap但它不再起作用,因为它失败了:

[ERROR] WSREP: gcs/src/gcs_core.cpp:gcs_core_open():208: Failed to open backend connection: -110 (Connection timed out)

要解决此问题,请运行:

galera_new_cluster

请注意,您只需要在“第一台”服务器上运行此脚本

要测试它是否正在运行,输入 mysql withmysql -u [your mysql user] -p然后运行

SHOW GLOBAL STATUS LIKE 'wsrep_cluster_size';

您应该会看到如下内容:

+--------------+
| cluster size |
+--------------+
| 1            |
+--------------+

以防万一它对任何人有用,这是我的 my.conf (MariaDB 10.1.16)

[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://[first ip],[second ip]"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2

更多细节在这里:

MariaDB systemd 和 galera_new_cluster

Galera 集群系统变量

于 2016-08-04T02:51:28.893 回答
14

我找到了解决方案和确切的问题。

问题在于启动集群节点。需要从 MariaDB 安装中包含的脚本开始,galera_new_cluster它将引导新集群,之后一切正常。

希望这将有助于其他人在 debian 下通过配置。

于 2016-05-29T19:34:44.323 回答
6

我有这个错误,但在我的情况下galera_new_cluster不起作用。

/var/lib/mysql/grastate.dat通过编辑文件并更改safe_to_bootstrap为1解决了问题。

完成后,galera_new_cluster工作。

于 2018-07-06T17:51:50.237 回答
0

我知道这个话题已经很老了。我试图安装一个 kubernetes mariadb 集群并遇到了这个问题。我不得不将信息从grastate.dat一个节点复制到下一个节点。我必须使用 cat grastate.dat 显示一个表单节点 1,并将所有内容复制到没有 uuid 的下一个节点。完成后文件如下所示:

# GALERA saved state
version: 2.1
uuid:    
seqno:   -1
safe_to_bootstrap: 1

然后保存并删除容器。重新启动后,它会使用该文件中的详细信息并正确启动。

于 2021-12-23T22:28:02.087 回答
0

就我而言,一切都已正确配置,此错误是由阻止 MariaDB 端口的防火墙引起的。我通过在所有服务器上允许它们来修复它:

ufw allow 3306,4567,4568,4444/tcp;
ufw allow 4567/udp;
于 2021-04-02T11:34:29.733 回答