Galera 集群節點失敗並出現錯誤。全新集群+主/節點。訪問被拒絕或無法連接
我有問題。
以前的集群致命地崩潰了,所以我創建了一個具有幾乎相同設置的新集群(僅更改了集群名稱)。
這是一個節點的 galera.cnf:
[mysqld] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 # Galera Provider Configuration wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so # Galera Cluster Configuration wsrep_cluster_name="cluster" wsrep_cluster_address="gcomm://y.y.y.139, x.x.x.25, 10.5.2.1" # Galera Synchronization Configuration wsrep_sst_method=rsync # Galera Node Configuration wsrep_node_address="x.x.x.25" wsrep_node_name="xxx002"
用於 master 的 Galera.cnf 僅在 wsrep_node_address (yyy139) 和 wsrep_node_name (yyy001) 方面有所不同。
我已經添加了 debian-sys-maint 的權限,但是一旦我連接到主節點,我將得到:
Jan 09 13:44:31 xxx002 mysqld[2609]: 2019-01-09 13:44:31 0 [Note] WSREP: 1.0 (xxx002): State transfer from 0.0 (yyy001) complete. Jan 09 13:44:31 xxx002 mysqld[2609]: 2019-01-09 13:44:31 0 [Note] WSREP: Shifting JOINER -> JOINED (TO: 926) Jan 09 13:44:31 xxx002 mysqld[2609]: 2019-01-09 13:44:31 0 [Note] WSREP: Member 1.0 (xxx002) synced with group. Jan 09 13:44:31 xxx002 mysqld[2609]: 2019-01-09 13:44:31 0 [Note] WSREP: Shifting JOINED -> SYNCED (TO: 926) Jan 09 13:44:31 xxx002 mysqld[2609]: 2019-01-09 13:44:31 2 [Note] WSREP: Synchronized with group, ready for connections Jan 09 13:44:31 xxx002 mysqld[2609]: 2019-01-09 13:44:31 2 [Note] WSREP: wsrep_notify_cmd is not defined, skipping notification. Jan 09 13:44:31 xxx002 mysqld[2609]: 2019-01-09 13:44:31 11 [Warning] Access denied for user 'debian-sys-maint'@'localhost' (using password: YES) Jan 09 13:44:31 xxx002 mysqld[2609]: 2019-01-09 13:44:31 12 [Warning] Access denied for user 'debian-sys-maint'@'localhost' (using password: YES) Jan 09 13:44:31 xxx002 mysqld[2609]: 2019-01-09 13:44:31 13 [Warning] Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)
當然我將無法登錄到mysql,因為我會得到:
錯誤 1524 (HY000): 外掛 ‘unix_socket’ 未載入
我不知道發生了什麼。它工作正常(我不得不重新安裝所有伺服器,但我使用的是相同的模板)。
我現在無法創建集群 4 天 :(
我在節點上安裝 MariaDB 後就添加了這些:
GRANT ALL PRIVILEGES on *.* TO debian-sys-maint@localhost IDENTIFIED BY 'your password' WITH GRANT OPTION; FLUSH PRIVILEGES; CREATE USER 'admin'@'localhost' IDENTIFIED BY 'PASS'; CREATE USER 'admin'@'10.%' IDENTIFIED BY 'PASSS'; GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';
主數據是從 .sql 恢復的(從以前的集群備份)。
不確定是什麼原因造成的?
聽起來這個問題與 Galera 無關。也許在您為它做之前,
debian-sys-maint@localhost
使用者已經使用unix_socket
定義的身份驗證外掛創建了GRANT
?並且錯誤消息非常清楚地說明了問題所在:ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded
.因此,您可以使用
debian-sys-maint@localhost
預設身份驗證外掛重新創建使用者 -mysql_native_password
(選項 1),也可以安裝unix_socket
外掛(選項 2):選項1
DROP USER debian-sys-maint@localhost; CREATE USER debian-sys-maint@localhost IDENTIFIED BY 'your password'; ` GRANT ALL PRIVILEGES on *.* TO debian-sys-maint@localhost WITH GRANT OPTION;
選項 2
INSTALL PLUGIN unix_socket SONAME 'auth_socket';
選項 2 的優點是您不需要使用者密碼,假設
debian-sys-maint
是您的作業系統使用者的名稱。MariaDB 將使用該作業系統使用者名作為 MariaDB 使用者名。
我在設置中遇到了同樣的錯誤。我正在試驗 docker、mariadb 和 galera 集群。Ubuntu 18.04、docker 20.10.2、mariadb 10.5(mariadb 官方 docker 鏡像)。
似乎您可以在第一次執行時加入一個新創建的容器。容器或 de mariadb 伺服器在加入集群之前是否需要執行一些初始化。所以首先使用 wsrep_on=off 啟動非“master/bootstraped”伺服器。然後在下次啟動時使其加入集群。否則,您將看到此錯誤,並且 node2 將無法加入,並且 node1 將處於失敗模式。