CentOS7安装MariaDB Galera Cluster集群 10.3.8

搭建MariaDB Galera Cluster集群 10.3.8

单机安装与配置(yum)

根据官网,从MariaDB 10.1版本开始,版本已自带Galera集群方案插件。
安装环境的操作系统为CentOS 7,openstack的虚拟主机。
百度搜索openstack环境下使用keepalive有些问题,所以直接使用nginx的stream轮询数据库集群。

graph LR
Nginx-->MariaDB-a01
Nginx-->MariaDB-a02
Nginx-->MariaDB-a03

下面从单机版安装开始。

配置使用阿里镜像

yum install wget
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all;yum makecache

配置MariaDb镜像

使用国内镜像

vi /etc/yum.repos.d/MariaDB.repo
黏贴下面内容,保存并退出 :wq! ;刷新,yum clean all;yum makecache


[mariadb]
name = MariaDB
baseurl = https://ipv4.mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64
gpgkey=https://ipv4.mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

配置代理

永久配置yum代理

vi /etc/yum.conf
增加本地代理(本地环境不能访问外网)

proxy=http://10.18.xx.xx:808

或者临时配置代理

export http_proxy=http://10.18.xxx.xxx:808
export https_proxy=http://10.18.xxx.xxx:808

安装MariaDB

yum install MariaDB-server MariaDB-client -y

配置MariaDB

service mariadb start
mysql_secure_installation
按提示配置

完全删除MariaDB数据库(重新设置配置)

这里记录如何重置数据库,之前搭建有时配置出错等问题,需要推倒重来

  • 关闭mysql
[root@tyrzpt2 etc]# ps -ef|grep mysql 
mysql     3548     1  0 Jul26 ?        00:01:26 /usr/sbin/mysqld --wsrep-new-cluster --wsrep_start_position=00000000-0000-0000-0000-000000000000:-1
root     14693  1739  0 11:42 pts/0    00:00:00 grep --color=auto mysql

[root@tyrzpt2 etc]# kill -9 3548
  • 卸载MariaDB
yum -y remove Maria*
  • 删除数据内容
rm -rf /var/lib/mysql/*
rm -rf /etc/my.cnf.d/
rm -rf /etc/my.cnf

Gelera集群搭建

网络配置准备

修改/etc/hosts,增加以下配置

132.xx.xx.11 mariadb-a01
132.xx.xx.18 mariadb-a02
132.xx.xx.35 mariadb-a03

将配置发送给集群其他机器

scp /etc/hosts root@132.xx.xx.18:/etc/hosts
scp /etc/hosts root@132.xx.xx.35:/etc/hosts

Galera配置(3台主机)

修改/etc/my.cnf.d/server.cnf
mariadb-a01机器配置如下,其他主机做相应修改

[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
lower_case_table_names = 1
server_id=6011 #自定义,或者ip地址后两位的组合

[galera]
wsrep_causal_reads=ON
wsrep_provider_options="gcache.size=4G"
wsrep_certify_nonPK=ON
query_cache_size=0
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name=MariaDB-Galera-Cluster #集群名称
wsrep_cluster_address="gcomm://132.xx.xx.11,132.xx.xx.18,132.xx.xx.35" #整个集群的IP地址
wsrep_node_name=mariadb-a01 #hostname,对应前面网路配置/etc/hosts
wsrep_node_address=132.97.54.11 #机器IP地址
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_slave_threads=8
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=2G
wsrep_sst_method=rsync #同步方式

启动集群

# mariadb-a01第一个启动,命令为
galera_new_cluster
# 分别启动mariadb-a02,mariadb-a03,命令为
service mariadb start

#查看日志
service mariadb status

测试

查询节点数量

数据库客户端如navicat,连接mariadb-a01,查看集群状态
show status like 'wsrep%';
wsrep_cluster_size=3 表示当前集群数量

mysql -p
MariaDB [(none)]> show status like 'wsrep%';
+------------------------------+-------------------------------------------------------+
| Variable_name                | Value                                                 |
+------------------------------+-------------------------------------------------------+
| wsrep_apply_oooe             | 0.000000                                              |
| wsrep_apply_oool             | 0.000000                                              |
| wsrep_apply_window           | 1.000000                                              |
| wsrep_causal_reads           | 249                                                   |
| wsrep_cert_deps_distance     | 1.000000                                              |
| wsrep_cert_index_size        | 62                                                    |
| wsrep_cert_interval          | 0.000000                                              |
| wsrep_cluster_conf_id        | 5                                                     |
| wsrep_cluster_size           | 3                                                     |
| wsrep_cluster_state_uuid     | 37040e50-90c1-11e8-8a67-5fb4478cc753                  |
| wsrep_cluster_status         | Primary                                               |
| wsrep_commit_oooe            | 0.000000                                              |
| wsrep_commit_oool            | 0.000000                                              |
| wsrep_commit_window          | 1.000000                                              |
| wsrep_connected              | ON                                                    |

Nginx的TCP负载均衡配置

nginx做为入口点,将请求轮询转发给任一数据库。
机器IP:132.xx.xx.100:3399

安装Nginx

yum install nginx -y

nginx配置

vi /etc/nginx/nginx.conf

events {
    ……………………
}

stream {
    upstream MariaDB_Cluster {
        server mariadb-a01:3306;
        server mariadb-a02:3306;
        server mariadb-a03:3306;
    }
    #转发数据库端口
    server {
        listen 3306;
        proxy_pass MariaDB_Cluster;
        proxy_connect_timeout 1s; # detect failure quickly
    }
}


http {
    ……………………
}

测试验证

navicat客户端连接132.xx.xx.100:3399,新建查询,hostname会变化
SHOW VARIABLES WHERE Variable_name = 'hostname';

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| hostname      | a02   |
+---------------+-------+
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容