MariaDB cluster

紀錄一下使用webinoly內的MariaDB需要改成cluster的做法

每一個要加入的DB都要先加入一個使用者,這邊帳號用 myuser 密碼用mypassword

#  mysql -uroot

GRANT USAGE ON *.* to 'myuser'@'%' IDENTIFIED BY 'mypassword';

GRANT ALL PRIVILEGES on *.* to 'myuser'@'%';

FLUSH PRIVILEGES;

安裝完成後接下來要設定 galera cluster 的設定檔

# vi /etc/mysql/mariadb.conf.d/60-galera.cnf

第一台,已經有資料的那台作法,我的第一台的IP是 192.168.0.136

這是我的設定檔

[galera]
# Mandatory settings
wsrep_on                 = ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name       = "MariaDB Galera Cluster"
wsrep_cluster_address    = "gcomm://192.168.0.136,192.168.0.138"
binlog_format            = row
default_storage_engine   = InnoDB
#innodb_autoinc_lock_mode = 2

# Allow server to accept connections on all interfaces.
bind-address = 0.0.0.0
wsrep_node_address='192.168.0.136'   #本機IP地址
wsrep_node_name='node1'    #集群節點名稱
wsrep_sst_auth=myuser:mypassword
wsrep_sst_method=rsync
log_error = /var/log/mysql/error.log
# Optional settings
#wsrep_slave_threads = 1
#innodb_flush_log_at_trx_commit = 0

然後處裡第二台(第三台之後比照辦理),一樣是這個設定檔/etc/mysql/mariadb.conf.d/60-galera.cnf

跟第一台內容一樣,
但是wsrep_node_address 的IP換成我第二台的IP 192.168.0.138
wsrep_node_name 用另一個名稱node2

然後每一台全部資料庫停止運行

# systemctl stop mariadb

第一台是已經有資料在上面的,第二台之後是新建好的。

第一台啟動執行

# galera_new_cluster

第二台之後是啟動執行

# systemctl start mariadb

第二台啟動會比較慢,因為它正在把第一台的資料同步回來,就等

其他資訊:

可以進入資料庫內查看有幾個節點。

show status like 'wsrep_cluster_size';

我目前的狀況兩個點,所以是2沒錯