Percona
Percona Xtradb Cluster 5.5:節點無法加入集群 - SST 因身份驗證問題而失敗
我有 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 grantsRELOAD, LOCK TABLES, REPLICATION CLIENT
。醜陋的解決方法,但它奏效了。第二天,我在 node03 上停止了 mysql,並在幾分鐘後啟動了它。SST 正常啟動,使用者名和密碼來自 wsrep_sst_auth 變數。蟲子消失了,不知道是什麼。