博客 > 如何在Ubuntu20.04上安裝配置MariaDB Galera數(shù)據(jù)庫(kù)多主集群?
瀏覽量:1182次評(píng)論:0次
作者:銳成網(wǎng)絡(luò)整理時(shí)間:2024-08-15 16:41:26
眾所周知,負(fù)載平衡和集群在生產(chǎn)環(huán)境中對(duì)于實(shí)現(xiàn)數(shù)據(jù)庫(kù)系統(tǒng)的高可用性非常重要。在開(kāi)源的數(shù)據(jù)庫(kù)中 MariaDB Galera Cluster 提供多主集群解決方案,支持 XtraDB/InnoDB 存儲(chǔ)引擎。多主集群允許讀取和寫入任何集群節(jié)點(diǎn),修改任何節(jié)點(diǎn)上的數(shù)據(jù),它們將被復(fù)制到所有其他節(jié)點(diǎn)。Galera集群還支持云環(huán)境和廣域網(wǎng)環(huán)境,構(gòu)建跨國(guó)家、跨洲的分布式集群。
在這篇文章中,我們將展示如何在 Ubuntu 20.04 服務(wù)器上設(shè)置三個(gè)節(jié)點(diǎn) MariaDB Galera 集群。
準(zhǔn)備條件
1、3臺(tái)運(yùn)行Ubuntu20.04的服務(wù)器
2、服務(wù)器支持SSH登錄的root賬號(hào)。
安裝 MariaDB Server
在開(kāi)始之前,建議將系統(tǒng)包更新到最新版本,可以使用以下命令更新它們:
apt update -y
更新完成后,就可以通過(guò)以下命令安裝MariaDB Server了。通過(guò)以下命令將mariadb安裝在3臺(tái)Ubuntu20.04服務(wù)器上。
apt install mariadb-server -y
安裝完成之后,我們可以通過(guò)以下服務(wù)管理命令啟動(dòng)和查看mariadb服務(wù)。
systemctl start mariadb
systemctl status mariadb
之后,通過(guò)在終端中執(zhí)行如下命令加固mariadb的安全以及重置其root賬號(hào)。
mysql_secure_installation
執(zhí)行過(guò)程中,會(huì)進(jìn)行交互式詢問(wèn),全部選擇"y"即可。
Enter current password for root (enter for none):
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
.....安全加固設(shè)置完成后,我們就可以進(jìn)行集群的配置了。
配置Galera群集
在每個(gè)節(jié)點(diǎn)服務(wù)器上創(chuàng)建galera.cnf配置文件,并使用系統(tǒng)自帶的vi或者nano編輯器打開(kāi)編輯:
nano /etc/mysql/conf.d/galera.cnf
在文件中添加如下內(nèi)容:
[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="galera_cluster"
wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="node1-ip-address"
wsrep_node_name="node1"
這是第一個(gè)節(jié)點(diǎn)上的配置文件,配置完成后保存。
同樣,在第二個(gè)節(jié)點(diǎn)上進(jìn)行配置,內(nèi)容如下:
nano /etc/mysql/conf.d/galera.cnf
編輯文件內(nèi)容:
[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="galera_cluster"
wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="node2-ip-address"
wsrep_node_name="node2"
保存,然后在第三個(gè)節(jié)點(diǎn)上進(jìn)行配置:
nano /etc/mysql/conf.d/galera.cnf
添加以下內(nèi)容:
[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="galera_cluster"
wsrep_cluster_address="gcomm://node1-ip-address,node2-ip-address,node3-ip-address"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="node3-ip-address"
wsrep_node_name="node3"
保存上面的內(nèi)容。
注意:每臺(tái)節(jié)點(diǎn)上配置文件內(nèi)容看似相似,但一定要注意其不同支持,節(jié)點(diǎn)信息是不同的,別搞錯(cuò)。
初始化Galera群集
在所有節(jié)點(diǎn)上的配置文件完成后,接下來(lái)我們初始化集群配置,操作步驟如下:
1、所有節(jié)點(diǎn)停止mariadb服務(wù)
systemctl stop mariadb
2、在第一個(gè)節(jié)點(diǎn)上,使用以下命令初始化MariaDB Galera集群:
galera_new_cluster
3、現(xiàn)在,使用以下命令檢查集群的狀態(tài):
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
首次執(zhí)行,會(huì)提示輸入root賬號(hào)密碼,之后你將會(huì)看到如下內(nèi)容:
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 1 |
+--------------------+-------+
以上同樣的步驟在第二個(gè)和第三個(gè)節(jié)點(diǎn)上進(jìn)行。
所有的節(jié)點(diǎn)完成以上操作后, Galera集群的初始化工作就已經(jīng)完成,你可以進(jìn)行下一步的操作了。
驗(yàn)證群集復(fù)制
接下來(lái),我們來(lái)驗(yàn)證復(fù)制是否正常工作。1、在第一個(gè)節(jié)點(diǎn)上,使用以下命令連接到MariaDB:
mysql -u root -p
2、連接成功后,執(zhí)行如下命令:
MariaDB [(none)]> create database db1;
MariaDB [(none)]> create database db2;
3、命令執(zhí)行完成后,通過(guò)以下命令退出:
MariaDB [(none)]> exit;
下一步,我們?cè)诘诙€(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)上執(zhí)行如下命令登錄數(shù)據(jù)庫(kù)服務(wù):
mysql -u root -p
登錄上后,執(zhí)行如下命令,顯示數(shù)據(jù)庫(kù)信息。
MariaDB [(none)]> show databases;
正常情況下,你將會(huì)看到我們?cè)诘谝粋€(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)創(chuàng)建的db1和db2已經(jīng)被復(fù)制到第二個(gè)節(jié)點(diǎn)上:
+--------------------+
| Database |
+--------------------+
| db1 |
| db2 |
| information_schema |
| mysql |
| performance_schema |
+--------------------+
5 rows in set (0.001 sec)
同樣,我們登錄第三個(gè)節(jié)點(diǎn)數(shù)據(jù)庫(kù)服務(wù)器,執(zhí)行命令登錄數(shù)據(jù)庫(kù)命令:
mysql -u root -p
一樣的,執(zhí)行顯示數(shù)據(jù)庫(kù)信息的命令:
MariaDB [(none)]> show databases;
你將會(huì)在第三個(gè)數(shù)據(jù)庫(kù)服務(wù)器節(jié)點(diǎn)上,看到db1和db2同樣被復(fù)制到第三個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)上了。
+--------------------+
| Database |
+--------------------+
| db1 |
| db2 |
| information_schema |
| mysql |
| performance_schema |
+--------------------+
5 rows in set (0.001 sec)
至此,我們完成了MariaDB Galera數(shù)據(jù)庫(kù)多主集群在Ubuntu20.04上的搭建,并驗(yàn)證了其自動(dòng)復(fù)制同步的情況。
寫在最后
在上面的操作教程中,我們學(xué)習(xí)了如何在Ubuntu20.04服務(wù)器上設(shè)置一個(gè)三節(jié)點(diǎn)MariaDB Galera集群?,F(xiàn)在,你可以按以上的方法輕松地向MariaDB Galera集群添加更多節(jié)點(diǎn)。
該文教程中的命令,同樣適合基于Ubuntu衍生版Linux系統(tǒng),以及Debian等系統(tǒng)。
如果你對(duì)MariaDB Galera集群感興趣,不妨嘗試以上內(nèi)容,搭建自己的MariaDB Galera多主集群。
重要聲明:本文來(lái)自Linux265,經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有,不代表銳成觀點(diǎn),轉(zhuǎn)載的目的在于傳遞更多知識(shí)和信息。
相關(guān)文章推薦
2025-05-27 11:53:22
2024-08-20 17:58:16
2024-08-19 17:49:29
2024-08-19 10:23:28
2024-08-16 17:06:33
熱門工具
標(biāo)簽選擇
閱讀排行
我的評(píng)論
還未登錄?點(diǎn)擊登錄