CentOS7使用官方YUM源安裝Mariadb Galera集群


一、安裝Mariadb數據庫前的准備工作

1、安裝CentOS7,三台虛擬機(IP分別為172.16.10.101,172.16.10.102,172.16.10.103)

2、添加Mariadb官方YUM源,下面以Mariadb 10.1為例

官方YUM源編輯器

使用以下命令快速添加YUM源

# tee /etc/yum.repos.d/mariadb.repo <<-'EOF'
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF

3、由於Mariadb服務器是在國外,速度較慢,可以使用國內鏡像源替代,以USTC鏡像源為例

# sed -i 's#yum\.mariadb\.org#mirrors.ustc.edu.cn/mariadb/yum#' /etc/yum.repos.d/mariadb.repo

4、刷新YUM緩存

# yum makecache

5、查看Mariadb相關的安裝包,注意軟件包版本和對應的YUM源名字

# yum list MariaDB* galera

6、關閉firewalld防火牆

# systemctl disable firewalld --now

7、設置主機名(設置三台虛擬機主機名分別為db1,db2,db3)

# hostnamectl set-hostname db1
# hostnamectl set-hostname db2
# hostnamectl set-hostname db3

8、編輯/etc/hosts文件

# vim /etc/hosts
172.16.10.101    db1
172.16.10.102    db2
172.16.10.103    db3

9、關閉SELINUX

# setenforce 0
# sed -i 's,^SELINUX=enforcing,SELINUX=disabled,g' /etc/selinux/config

二、部署MariaDB Galera集群

1、安裝相關軟件包

# yum install MariaDB-server MariaDB-client MariaDB-client

2、由於要啟用xtrabackup-v2功能,需要額外安裝percona提供的軟件包

# yum install https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.10/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm

3、在db1上啟動MariaDB數據庫,設置galera集群同步賬號,進行安全初始化

# systemctl start mariadb.service
# mysql -uroot -e "grant all privileges on *.* to 'sst'@'localhost' identified by 'password';"
# mysql_secure_installation
# systemctl stop mariadb.service

4、在三個節點上編輯MariaDB配置文件,以開啟galera集群功能

#vim /etc/my.cnf.d/galera.cnf
[server]
[mysqld]
# 監聽哪個地址,這里每個節點填對應的ip地址
bind-address=172.16.10.101 
# 監聽哪個端口
port = 3306
# 設置默認字符編碼集
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
character-set-server = utf8
# 設置日志路徑
log-error = /var/log/mariadb/mariadb.log
# 設置binlog
log-bin = mysql-bin
binlog_format=ROW
# 設置默認數據目錄
datadir = /var/lib/mysql/
# 設置默認存儲引擎
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
# galera集群名字
wsrep_cluster_name="galera_cluster"
# 本節點的主機名,這里每個節點填對應的ip地址
wsrep_node_name="db1" 
wsrep_cluster_address = "gcomm://172.16.10.101:4567,172.16.10.102:4567,172.16.10.103:4567"
wsrep_provider_options = "gmcast.listen_addr=tcp://172.16.10.101:4567;ist.recv_addr=172.16.10.101:4568" wsrep_node_address="172.16.10.101:4567"
# 設置galera集群同步的方法和用戶名密碼
wsrep_sst_auth=sst:password
wsrep_sst_method=xtrabackup-v2
max_connections = 10000
key_buffer_size = 64M
max_heap_table_size = 64M
tmp_table_size = 64M
innodb_buffer_pool_size = 128M
[embedded]
[mariadb]
[mariadb-10.1]

三、啟動galera集群

1、在db1上運行galera_new_cluster命令

# galera_new_cluster

2、在db1上查看集群狀態

# mysql -uroot -p -e "show status like 'wsrep_cluster_size';"
+--------------------------+--------------------------------------+
| Variable_name            | Value                                |
+--------------------------+--------------------------------------+
| wsrep_cluster_size       | 1                                    |
+--------------------------+--------------------------------------+

3、監控db1上的MariaDB日志

# tail -f /var/log/mariadb/mariadb.log

4、在db2上運行MariaDB數據庫

# systemctl start mariadb

5、在db1上檢查集群狀態

# mysql -uroot -p -e "show status like 'wsrep_cluster_size';"
+--------------------------+--------------------------------------+
| Variable_name            | Value                                |
+--------------------------+--------------------------------------+
| wsrep_cluster_size       | 2                                    |
+--------------------------+--------------------------------------+

6、在db3上運行MariaDB數據庫

# systemctl start mariadb

7、在db1上檢查集群狀態

# mysql -uroot -p -e "show status like 'wsrep_cluster_size';"
+--------------------------+--------------------------------------+
| Variable_name            | Value                                |
+--------------------------+--------------------------------------+
| wsrep_cluster_size       | 3                                    |
+--------------------------+--------------------------------------+

四、驗證MariaDB galera集群的同步功能是否正常

1、在db1上創建用戶、數據庫

# mysql -uroot -p -e "user add testuser;"
# mysql -uroot -p -e "create database testdb;"
# mysql -uroot -p -e "grant all privileges on testdb.* to 'testuser'@'localhost' identified by 'password';"

2、在db2上檢查用戶、數據庫是否存在

# mysql -uroot -p -e "select user,host from mysql.user;"
# mysql -uroot -p -e "show databases;"

3、在db3上刪除用戶和數據庫

# mysql -uroot -p -e "delete user 'testuser'"
# mysql -uroot -p -e "drop database testdb"

4、在db1上檢查用戶和數據庫是否還在

# mysql -uroot -p -e "select user,host from mysql.user;"
# mysql -uroot -p -e "show databases;"

 

 

至此,MariaDB galera集群已經部署完成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM