mysql - 无法启动 MySQL Galera 集群中的第二个节点

标签 mysql replication galera

所有操作均在 debian 7 虚拟机中执行。已安装两个节点:galerareplicator、来自 codership 的 mysql galera、percona-xtrabackup、netcat-openbsd(percona-xtrabackup 需要)。第三个节点只有 galera 复制器,并在运行 garbd 的情况下充当仲裁器。

节点 #1 (192.168.0.102) 上的配置

wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_provider_options="gcache.size=2G"
wsrep_cluster_name="clusterTest"
wsrep_cluster_address="gcomm://"
wsrep_node_name="node-1"
wsrep_node_address=192.168.0.102
wsrep_node_incoming_address=192.168.0.102
wsrep_slave_threads=16
wsrep_sst_method=xtrabackup
wsrep_sst_receive_address=192.168.0.102
wsrep_sst_auth=root:somepass

节点 #2 (192.168.0.103) 上的配置

wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_provider_options="gcache.size=2G"
wsrep_cluster_name="clusterTest"
wsrep_cluster_address="gcomm://192.168.0.102"
wsrep_node_name="node-2"
wsrep_node_address=192.168.0.103
wsrep_node_incoming_address=192.168.0.103
wsrep_slave_threads=16
wsrep_sst_method=xtrabackup
wsrep_sst_receive_address=192.168.0.103
wsrep_sst_auth=root:somepass
wsrep_sst_donor="node-1"

第一次运行时,只有node-1有一个用于测试的数据库,我们称之为testDB。

我做什么:

1. node-1> service mysql start
Result: node is working, testDB is accessible from any host and the node itself.
2. node-3> garbd --address gcomm://192.168.0.102,192.168.0.103 --group "clusterTest"
Resutl: the cluster size is 2.
3. node-2> service mysql start
Result: the cluster size is 3, but the init-script reports that service start failed, however the processes are running, the sst is performed.

此外,我无法访问在节点 2 上运行的 mysql:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

从远程主机:

PHP Warning:  mysqli::mysqli(): (HY000/2003): Can't connect to MySQL server on '192.168.0.103' (111)

节点 1 的集群状态:

wsrep_local_state_comment    | Donor/Desynced
wsrep_incoming_addresses     | 192.168.0.102:3306,,192.168.0.103:3306
wsrep_cluster_conf_id        | 3                                     
wsrep_cluster_size           | 3   

如果我在节点 2 上启动 mysql,并将 wsrep_provider 设置为“none”,则可以从本地和远程主机完全访问该数据库,并且该数据库与节点 1 上的数据库相同。如果我再次启动集群,情况会重复,节点 2 仅对其他节点可见,集群变得不同步,并且节点 2 既无法从控制台访问,也无法从远程主机访问。

最佳答案

排除 Galera 问题时最有用的工具是 MySQL 错误日志。在 Debian 中,它们默认位于/var/log/syslog 中。

看来您正在使用节点 1 来引导集群。确保 wsrep_cluster_address 设置正确至关重要。两个节点的设置应如下所示:

Node 1

wsrep_cluster_address=gcomm://


Node 2

wsrep_cluster_address=gcomm://192.168.0.102,192.168.0.103

关于mysql - 无法启动 MySQL Galera 集群中的第二个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20330440/

相关文章:

docker - 如何在Docker中使用MariaDB Galera集群调试 “WSREP: SST failed: 1 (Operation not permitted)”?

mysql合并两个表

iis - 如何复制网络场上的内容

MySQL-8.0.12从复制失败

hadoop - HDFS 减少复制因子

php - galera 集群的节点数必须是奇数吗?

mysql - 相互复制两个集群

java - 使用 Java 连接到 mySQL 数据库

php - 如何获取具有不同日期的重复行

mysql - 选择一列数据,然后在特定条件为真时计算该列的值