Percona

Percona Xtradb Cluster 5.5:節點無法加入集群 - SST 因身份驗證問題而失敗

  • August 8, 2016

我有 3 節點 PXC 5.5 集群。my.cnf 中 node03 上的設置

$$ mysqld $$部分:

wsrep_cluster_address=gcomm://<ip_node1>,<ip_node2>
wsrep_cluster_name=cluster
wsrep_provider_options="gcache.size=128M"
wsrep_node_address=<ip_node3>
wsrep_node_name=node03
wsrep_slave_threads=16
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sst:XXXXXXXXXXXXXX

其他 2 個節點上的設置相同。node03 無法加入集群:

160807  5:30:18 [ERROR] WSREP: Process completed with error: wsrep_sst_xtrabackup-v2 --role 'joiner' --address '<ip_node3>' --auth 'XXXXXXXXXXXXXX' --datadir '/var/lib/mysql/data/' --defaults-file '/etc/mysql/my.cnf' --parent '9532': 2 (No such file or directory)

捐助者節點 error.log 中的錯誤:

160807  5:13:30 [ERROR] WSREP: Command did not run: wsrep_sst_xtrabackup-v2 --role 'donor' --address '<ip_node3>:4444/xt
rabackup_sst' --auth '(null)' --socket '/var/run/mysqld/mysqld.sock' --datadir '/var/lib/mysql/data/' --defaults-file '/et
c/mysql/my.cnf' --gtid 'f964a515-38a3-11e6-8d63-47f60c48dba5:38453358'

捐助者節點 /var/lib/mysql/data/innobackup.backup.log 中的錯誤:

160807 05:24:35 innobackupex: Starting the backup operation

IMPORTANT: Please check that the backup run completes successfully.
          At the end of a successful backup run innobackupex
          prints "completed OK!".

160807 05:24:35 Connecting to MySQL server host: localhost, user: mysql, password: not set, port: 3306, socket: /var/run/mysqld/mysqld.sock
   Failed to connect to MySQL server: Access denied for user 'mysql'@'localhost' (using password: NO).

--auth '(null)'Access denied for user 'mysql'@'localhost'表示wsrep_sst_auth未設置。

但如您所見,它存在於 my.cnf 中。我在本地主機上的施主節點上檢查了 sst:XXXXXXXXXXXXXX,它可以工作。

為什麼加入節點不使用wsrep_sst_auth配置?

我設法通過mysql@localhost在施主節點上創建沒有密碼的預設使用者來執行 SST,並使用 required grants RELOAD, LOCK TABLES, REPLICATION CLIENT。醜陋的解決方法,但它奏效了。

第二天,我在 node03 上停止了 mysql,並在幾分鐘後啟動了它。SST 正常啟動,使用者名和密碼來自 wsrep_sst_auth 變數。蟲子消失了,不知道是什麼。

引用自:https://dba.stackexchange.com/questions/146088