安装环境
系统:CentOS 6.8 x86_64
软件:MariaDB 10.1.16
节点一:192.168.11.132 4C 8GB
节点二:192.168.11.133 4C 8GB
软件获取
访问MariaDB企业版下载地址 https://mariadb.com/my_portal/download/mariadb-enterprise 登录帐号后选择 10.1.16GA版本 源代码包下载。
从MariaDB Enterprise 10.1版本开始,企业版软件包与集群功能集成到一起,所以下载软件包就一个。
下载源代码包到CentOS系统的/usr/src目录下
访问galeracluster官网 http://galeracluster.com/ 下载页面
选择目前最新版Galera 3 wsrep源代码包下载到CentOS系统的/usr/src目录
下载完成后将两个软件包拷贝到各个节点的/usr/src目录下
安装过程
1.添加epel的yum源
rpm -vih http://mirrors.ustc.edu.cn/epel/epel-release-latest-6.noarch.rpm
2.重新生成yum源缓存
yum clean all;yum makecache
3.使用yum来安装必要的软件包
yum install -y ntp ntpdate libaio jemalloc ncurses-devel make cmake bison zlib zlib-devel openssl openssl-devel gcc gcc-c++ rsync scons boost boost-devel check check-devel
4.利用文件CRC校验码来判断,如果/etc/localtime与/usr/share/zoneinfo/Asia/Shanghai不是同一个文件,则系统时区不为亚洲上海,此时需要拷贝或链接/usr/share/zoneinfo/Asia/Shanghai文件到/etc/localtime文件覆盖。
5.与ntp server同步来更新系统时间
ntpdate 0.centos.pool.ntp.org
hwclock -w
/etc/init.d/ntpd start
chkconfig ntpd on
chkconfig ntpdate on
6.关闭系统防火墙服务与selinux服务
/etc/init.d/iptables stop
/etc/init.d/ip6tables stop
chkconfig iptables off
chkconfig ip6tables off
setenforce 0
7.解压galera压缩包,拷贝到/usr/local并重命名
tar zxf galera-3-25.3.17.tar.gz
mv galera-3-25.3.17 /usr/local/galera
8.使用scons命令来编译安装galera
9.安装完成会生成/usr/local/galera/libgalera_smm.so模块
10.切换到/usr/src目录解压mariadb-enterprise配置
cd /usr/src/
tar zxf mariadb-enterprise-10.1.16.tar.gz
cd mariadb-10.1.16/
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DDEFAULT_SYSCONFDIR=/usr/local/mariadb/etc -DMYSQL_DATADIR=/usr/local/mariadb/data -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mariadb/mariadb.sock -DMYSQL_USER=mariadb -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DWITH_WSREP=ON -DWITH_INNODB_DISALLOW_WRITES=ON
11.用cpu的4核心同时编译
make -j 4
12.安装
make install
13.创建mariadb用户及相应目录
useradd -M -s /sbin/nologin mariadb
mkdir -p /usr/local/mariadb/etc
mkdir -p /usr/local/mariadb/run
mkdir -p /usr/local/mariadb/log
14.如果存在/etc/my.cnf文件,请删除或改名。并创建新的配置文件
mv /etc/my.cnf /etc/my.cnf.bak
cp support-files/my-large.cnf.sh /usr/local/mariadb/etc/my.cnf
15.编辑/usr/local/mariadb/etc/my.cnf修改port与socket参数,并在[mysqld]添加
pid-file = /usr/local/mariadb/run/mariadb.pid
log-error = /usr/local/mariadb/log/mariadb.log
16.修改mariadb目录所有者
chown -R mariadb:mariadb /usr/local/mariadb/
17.初始化mariadb数据库
/usr/local/mariadb/scripts/mysql_install_db --user=mariadb --basedir=/usr/local/mariadb/ --datadir=/usr/local/mariadb/data/
18.修改/usr/local/mariadb/bin/mysqld_safe文件参数
user='mariadb'
19.启动mariadb数据库
/usr/local/mariadb/bin/mysqld_safe &
20.查看进程与端口状态
21.创建启动脚本
cp /usr/src/mariadb-10.1.16/support-files/mysql.server /etc/init.d/mariadb
chmod 755 /etc/init.d/mariadb
22.修改/etc/init.d/mariadb文件如下参数
basedir=/usr/local/mariadb
datadir=/usr/local/mariadb/data
mysqld_pid_file_path=/usr/local/mariadb/run/mariadb.pid
23.添加chkconfig管理
chkconfig --add mariadb
24.测试启动功能
25.配置mariadb数据库root账户登录密码,并进行安全配置。
/usr/local/mariadb/bin/mysql_secure_installation
26.使用密码登录数据库
/usr/local/mariadb/bin/mysql -u'root' -p'D5)Ga!3'
27.创建用于同步数据库的sst帐号
GRANT USAGE ON *.* to sst@'%' IDENTIFIED BY 'g#ds0Gl';
GRANT ALL PRIVILEGES on *.* to sst@'%';
FLUSH PRIVILEGES;
28.停止数据库
/etc/init.d/mariadb stop
修改配置文件 /usr/local/mariadb/etc/my.cnf 在末尾加入
!includedir /usr/local/mariadb/etc/my.cnf.d/
29.创建/usr/local/mariadb/etc/my.cnf.d/目录与wsrep.cnf配置文件
mkdir /usr/local/mariadb/etc/my.cnf.d/
cp /usr/src/mariadb-10.1.16/support-files/wsrep.cnf.sh /usr/local/mariadb/etc/my.cnf.d/wsrep.cnf
chown -R mariadb.mariadb /usr/local/mariadb/etc/my.cnf.d/
在节点二(如果存在多个节点请在其他每个节点)执行以上1到29步骤安装配置数据库。
在节点一执行:
修改/usr/local/mariadb/etc/my.cnf.d/wsrep.cnf在[mysqld]部分以下参数
wsrep_on=on
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_provider=/usr/local/galera/libgalera_smm.so
wsrep_cluster_name="my_wsrep_cluster"
wsrep_cluster_address="gcomm://192.168.11.132,192.168.11.133"
wsrep_node_name=node01
wsrep_node_address=192.168.11.132
wsrep_sst_method=rsync
wsrep_sst_auth=sst:g#ds0Gl
启动集群服务
/etc/init.d/mariadb bootstrap
查看日志/usr/local/mariadb/log/mariadb.log有 WSREP: Synchronized with group, ready for connections 信息表示集群服务启动成功。
tail /usr/local/mariadb/log/mariadb.log
在节点二执行:
修改/usr/local/mariadb/etc/my.cnf.d/wsrep.cnf在[mysqld]部分以下参数
wsrep_on=on
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_provider=/usr/local/galera/libgalera_smm.so
wsrep_cluster_name="my_wsrep_cluster"
wsrep_cluster_address="gcomm://192.168.11.132,192.168.11.133"
wsrep_node_name=node02
wsrep_node_address=192.168.11.133
wsrep_sst_method=rsync
wsrep_sst_auth=sst:g#ds0Gl
启动集群服务
/etc/init.d/mariadb start
日志详情
如有多个节点,请参照节点二配置。
在任意一节点登录mariadb数据库
查看集群功能是否开启
show status like 'wsrep_ready';
初始化数据库显示情况
show variables like 'wsrep_cluster_address';
查看集群相关参数
show status like 'wsrep%';
wsrep_cluster_size集群规模节点数
wsrep_cluster_state_uuid集群uuid
wsrep_connected连接状态
wsrep_ready启动状态
查看各节点数据库系统时间是否一致
select now();
测试在一个创建数据库与数据表
create database base;
use base;
create table pet(name varchar(20), owner varchar(20),species varchar(20),sex char(1),birth date, death date);
在另一个节点查看已经同步成功
在另一个节点向数据表插入一条记录
insert into pet values('Puffball','Diane','hamster','f','1999-03-30',null);
在其他节点查看记录已经同步
select * from pet;
删除数据库
drop database base;
至此MariaDB Galera Cluster集群部署成功。
本文出自 “服务器系统交流” 博客,转载请与作者联系!