编译安装mariadb+gelera,部署仲裁节点,之前弄过一次yum安装的MariaDB+Galera,其实编译也很简单,增加一些参数就行,工作中需要折腾了我两三天吧估计,编译命令整错了导致没编译上,记录一下。
编译MariaDB
-
编译mariadb需要用到cmake,gcc,c++之类的环境
1
|
yum install -y cmake ncurses-devel gcc-c++
|
-
下载MariaDB源码包及gelera
MariaDB:https://downloads.mariadb.com/MariaDB/mariadb-10.1.6/source/mariadb-10.1.6.tar.gz
gelera:http://releases.galeracluster.com/galera-3/centos/7/x86_64/galera-3-25.3.29-1.el7.x86_64.rpm
-
直接解压并且编译
1
|
tar -xvf mariadb-10.1.6.tar.gz
|
编译命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
cmake \
-DCMAKE_INSTALL_PREFIX=/opt/meethong/mariadb \
-DDEFAULT_SYSCONFDIR=/opt/meethong/mariadb \
-DMYSQL_DATADIR=/opt/meethong/mariadb/data \
-DMYSQL_TCP_PORT=8102 \
-DMYSQL_UNIX_ADDR=/opt/meethong/mariadb/data/mysql.sock \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DWITH_WSREP=ON \
-DWITH_INNODB_DISALLOW_WRITES=ON \
--------
执行完camke 执行make
make & make install
|
配置集群
安装galera-3-25.3.29-1.el7.x86_64
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
rpm -ivh galera-3-25.3.29-1.el7.x86_64.rpm --nodeps --force
[root@demo ~]# rpm -qpl galera-3-25.3.29-1.el7.x86_64.rpm ##查看这个包的安装路径
警告:galera-3-25.3.29-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID bc19ddba: NOKEY
/etc/sysconfig/garb
/usr/bin/garb-systemd
/usr/bin/garbd
/usr/lib/systemd/system/garb.service
/usr/lib64/galera-3
/usr/lib64/galera-3/libgalera_smm.so
/usr/share/doc/galera-3
/usr/share/doc/galera-3/COPYING
/usr/share/doc/galera-3/LICENSE.asio
/usr/share/doc/galera-3/LICENSE.chromium
/usr/share/doc/galera-3/LICENSE.crc32c
/usr/share/doc/galera-3/README
/usr/share/doc/galera-3/README-MySQL
/usr/share/man/man8/garbd.8.gz
[root@demo ~]#
|
配置my.cnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
vim /opt/meethong/mariadb/my.cnf #拉到最后把这段复制进去
[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so#galera的库文件的地址
wsrep_cluster_address="gcomm://192.168.0.190,192.168.0.189"#各节点的ip
wsrep_node_name=demo#节点主机名
wsrep_cluster_name=galera_cluster
wsrep_node_address=192.168.0.189#节点ip
binlog_format=row#二进制日志设置为行模式 row (安全性最高,性能最低)
default_storage_engine=InnoDB#使用的默认引擎 innoDB 支持事务
innodb_autoinc_lock_mode=2#2为性能最好
配置下log日志文件地址
[mysqld]
log-error =/opt/eetrust/mmeethong/data/mariadb.log
|

1
2
3
4
|
第一台用这个命令启动
service mysqld bootstrap
有错误就差看下日志,其他节点启动用这个
service mysqld start
|
仲裁节点配置
我的测试环境为两台mariadb 一台仲裁服务 仲裁并没有安装MariaDB
安装galera-3-25.3.29-1.el7.x86_64 他的配置文件是**/etc/sysconfig/garb**
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
[root@localhost ~]# more /etc/sysconfig/garb
# Copyright (C) 2012 Codership Oy
# This config file is to be sourced by garb service script.
# A comma-separated list of node addresses (address[:port]) in the cluster
# GALERA_NODES=""
# Galera cluster name, should be the same as on the rest of the nodes.
# GALERA_GROUP=""
# Optional Galera internal options string (e.g. SSL settings)
# see http://galeracluster.com/documentation-webpages/galeraparameters.html
# GALERA_OPTIONS=""
# Log file for garbd. Optional, by default logs to syslog
# LOG_FILE=""
GALERA_NODES="192.168.0.189:4567,192.168.0.190:4567" # 这里是两节点的地址
GALERA_GROUP="galera_cluster" # 这里的group名称保持与两节点的wsrep_cluster_name属性一致
LOG_FILE="/var/log/garb.log"
|
启停命令
1
2
|
[root@localhost ~]# systemctl stop garb
[root@localhost ~]# systemctl start garb
|
查看集群节点
1
2
3
4
5
6
7
|
mysql> show status like 'wsrep_cluster_size';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 3 |
+--------------------+-------+
1 row in set
|
参考
- https://www.dwhd.org/20150924_133631.html
- https://jeremy-xu.oschina.io/2018/02/mariadb-galera-cluster%E9%83%A8%E7%BD%B2%E5%AE%9E%E6%88%98/#mariadb-galera-cluster%E7%9A%84%E8%87%AA%E5%90%AF%E5%8A%A8
- https://blog.51cto.com/1130739/1852319