文章目录
下面简单记录下Centos快速部署MariaDB Galera集群环境:
一、环境说明
|主机名| 内网地址|
|–|–|–|-|
| mariadb01| 172.16.0.11 |
| mariadb02| 172.16.0.12 |
| mariadb03| 172.16.0.13 |
操作系统:centos:7.7
ceph版本: 10.2.11
二、环境准备
# 服务器之间免登陆
[root@localhost ~]# ssh-keygen -t rsa
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 172.16.0.11
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 172.16.0.12
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub 172.16.0.13
# 设置主机名
[root@localhost ~]# hostnamectl set-hostname mariadb01
[root@localhost ~]# hostnamectl set-hostname mariadb02
[root@localhost ~]# hostnamectl set-hostname mariadb03
三、挂载镜像,搭建本地yum源
[root@mariadb01 ~]# mount /dev/cdrom /mnt
[root@mariadb01 ~]# rm -rf /etc/yum.repos.d/*.repo
[root@mariadb01 ~]# cat > /etc/yum.repos.d/CentOS-Base.repo <<EOF
[base]
name=CentOS-7- Base
baseurl=file:///mnt
gpgcheck=0
enable=1
EOF
四、关闭selinux、防火墙
[root@mariadb01 ~]# setenforce 0 && systemctl disable firewalld && systemctl stop firewalld
五、时间同步
[root@mariadb01 ~]# yum -y install ntp ntpdate ntp-doc && systemctl restart ntpd && systemctl enable ntpd
六、下载软件包
[root@mariadb01 ~]# mkdir -p /data/tools/
[root@mariadb01 ~]# cd /data/tools
[root@mariadb01 tools]# wget https://mirror.vpsfree.cz/mariadb//mariadb-10.4.20/yum/centos74-amd64/rpms/MariaDB-client-10.4.20-1.el7.centos.x86_64.rpm
[root@mariadb01 tools]# wget https://mirror.vpsfree.cz/mariadb//mariadb-10.4.20/yum/centos74-amd64/rpms/MariaDB-common-10.4.20-1.el7.centos.x86_64.rpm
[root@mariadb01 tools]# wget https://mirror.vpsfree.cz/mariadb//mariadb-10.4.20/yum/centos74-amd64/rpms/MariaDB-devel-10.4.20-1.el7.centos.x86_64.rpm
[root@mariadb01 tools]# wget https://mirror.vpsfree.cz/mariadb//mariadb-10.4.20/yum/centos74-amd64/rpms/MariaDB-gssapi-server-10.4.20-1.el7.centos.x86_64.rpm
[root@mariadb01 tools]# wget https://mirror.vpsfree.cz/mariadb//mariadb-10.4.20/yum/centos74-amd64/rpms/MariaDB-server-10.4.20-1.el7.centos.x86_64.rpm
[root@mariadb01 tools]# wget https://mirror.vpsfree.cz/mariadb//mariadb-10.4.20/yum/centos74-amd64/rpms/galera-4-26.4.7-1.el7.centos.x86_64.rpm
[root@mariadb01 tools]# wget https://mirror.vpsfree.cz/mariadb//mariadb-10.4.20/yum/centos74-amd64/rpms/libzstd-1.3.4-1.el7.x86_64.rpm
[root@mariadb01 tools]# wget https://mirror.vpsfree.cz/mariadb//mariadb-10.4.20/yum/centos74-amd64/rpms/jemalloc-devel-3.6.0-1.el7.x86_64.rpm
[root@mariadb01 tools]# wget https://mirror.vpsfree.cz/mariadb//mariadb-10.4.20/yum/centos74-amd64/rpms/jemalloc-3.6.0-1.el7.x86_64.rpm
[root@mariadb01 tools]# wget https://mirror.vpsfree.cz/mariadb//mariadb-10.4.20/yum/centos74-amd64/rpms/MariaDB-compat-10.4.20-1.el7.centos.x86_64.rpm
[root@mariadb01 tools]# yum -y install galera-4-26.4.7-1.el7.centos.x86_64.rpm MariaDB-* jemalloc-devel-3.6.0-1.el7.x86_64.rpm jemalloc-3.6.0-1.el7.x86_64.rpm
七、安装MariaDB数据库,并初始化数据库
[root@mariadb01 tools]# yum -y install galera-4-26.4.7-1.el7.centos.x86_64.rpm jemalloc-* MariaDB-* libzstd-1.3.4-1.el7.x86_64.rpm
[root@mariadb01 tools]# systemctl enable --now mariadb
# 设初始化并置密码
[root@mariadb01 tools]# mysql_secure_installation
八、配置galera集群
[root@mariadb01 tools]# cd /etc/my.cnf.d
[root@mariadb01 my.cnf.d]# cat > /etc/my.cnf.d/wsrep.cnf <<EOF
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
wsrep_node_name='172.16.0.11' # 每个节点都需要修改
wsrep_node_address="172.16.0.11" # 每个节点都需要修改
wsrep_cluster_name='galera-cluster'
wsrep_cluster_address="gcomm://172.16.0.11,172.16.0.12,172.16.0.13"
wsrep_provider_options="gcache.size=300M; gcache.page_size=300M"
wsrep_slave_threads=4
wsrep_sst_method=rsync
EOF
[root@mariadb01 my.cnf.d]# cat > /etc/my.cnf.d/server.cnf <<EOF
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
bind-address=0.0.0.0
user=mysql
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=128M
binlog_format=ROW
log-error=/var/log/mysqld.log
EOF
# 将上面的配置拷贝都其他节点,并做适当修改
# 任意节点一个执行
[root@mariadb01 my.cnf.d]# systemctl stop mariadb
[root@mariadb01 my.cnf.d]# galera_new_cluster
# 另外2个节点执行
[root@mariadb02 ~]# systemctl start mariadb
[root@mariadb03 ~]# systemctl start mariadb
# 查看集群
[root@mariadb01 ~]# mysql -uroot -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
九、验证数据同步
# 在节点1新建数据库
[root@mariadb01 my.cnf.d]# mysql -uroot -p1 -e "create database test_1;"
# 节点2或者3都会自动新建库
[root@mariadb02 tools]# mysql -uroot -p1 -e "show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test_1 |
+--------------------+
[root@mariadb03 tools]# mysql -uroot -p1 -e "show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test_1 |
+--------------------+