安装环境
主机名 ip 角色
jq1 192.168.43.201 主节点
jq2 192.168.43.202 主节点
安装部署
1、在jq1、jq2安装依赖包
# yum -y install gcc gcc-c++ boost-devel rsync lsof scons check-devel openssl-devel
除scons外,其他的依赖包本地源都有,后面会附一个scons的安装方式
2、创建目录和用户
# groupadd mysql
# useradd -g mysql -M mysql
# passwd mysql (按需求判断是否需要设置密码)
3、新建mysql数据目录、日志目录和临时目录并赋予权限
# mkdir -p /ops/mysql-galera/{data,logs,temp}
# chown -R mysql:mysql /ops/mysql-galera
4、把需要的安装包放进服务器
galera插件安装包下载路径
http://releases.galeracluster.com//galera-3/source/
带wsrep插件的mysql安装包下载路径 (此处用的是5.7版本的mysql)
http://releases.galeracluster.com//mysql-wsrep-5.7/binary
5、安装galera插件和mysql
# cd /opt/
# 存放安装包的路径
# tar zxf mysql-wsrep-5.7.39-25.31-linux-x86_64.tar.gz -C /ops/mysql-galera/
# 此处我用的是此版本,解压到新建目录/ops/mysql-galera/下
# cd /ops/mysql-galera
# mv mysql-wsrep-5.7.39-25.31-linux-x86_64 mysql-wsrep-5.7.39
# 重命名一下,为了方便
# cd /opt
# tar zxf galera-3-25.3.37.tar.gz -C /ops/mysql-galera
# 解压路径与mysql相同
# cd /ops/mysql-galera
# mv galera-3-25.3.37 galera-3-25
# 重命名一下,为了方便
# cd galera-3-25/
# scons
# 使用scons进行编译,如有报错请参照第六步,无报错继续执行下一条cp命令
# cp -f garb/garbd /ops/mysql-gelera/mysql-wsrep-5.7.24/bin/
# cp -f libgalera_smm.so /ops/mysql-gelera/mysql-wsrep-5.7.24/lib/plugin/
# 强制复制两份配置到指定目录下
6、如在第五步使用scons后出现编译报错,则是scons命令方面的问题,可安装一个scons,步骤如下
第一步 推荐安装最新版本的python,SCons适配的python版本为2.7.x或者3.5以后的版本,可从python官网下载,下载后使用python -v查看版本,如版本未更换则更换下版本
python官网下载路径Download Python | Python.org
第二部 安装scons,找到scons的官网下载路径(SCons Downloads)下载适用于linux的安装包,如SCons-4.3.0.tar.gz,放进服务器后找路径解压,解压后进入scons目录进行安装,具体步骤如下
# cd Scons-4.3.0
# python setup.py install --prefix=$HOME
# 指定安装路径,非指定情况下我安装后出现了不明原因报错
安装之后即可正常使用scons命令,Scons是一个开放源码、以Python语言编码的自动化构建工具,可用来替代make编写复杂的makefile。并且scons是跨平台的,只要scons脚本写的好,可以在Linux和Windows下随意编译。
7、配置文件
mysql配置文件my.cnf配置如下
[client]
port=3306
# mysql默认端口
socket=/ops/mysql-galera/mysql.sock
[mysqldump]
quick
max_allowed_packet=32M
[mysqld_safe]
log-error=/ops/mysql-galera/logs/mysqld.log
pid-file=/ops/mysql-galera/mysqld.pid
# 路径填写实际对应路径
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
log-bin-trust-function-creators=1
skip-external-locking
skip-name-resolve=1
user=mysql
port=3306
basedir=/ops/mysql-galera/mysql-wsrep-5.7.39
datadir=/ops/mysql-galera/mysql-wsrep-5.7.39/data
tmpdir=/ops/mysql-galera/temp
socket=/ops/mysql-galera/mysql.sock
pid-file=/ops/mysql-galera/mysqld.pid
# 路径填写实际对应路径
server_id=3
log_bin=mysql-bin
relay-log=mgc003-relay-bin
binlog_format=row
wsrep配置文件wsrep.cnf配置如下,也可以把此配置不创建,并入mysql.cnf下
[mysqld]
wsrep_provider=/ops/mysql-galera/galera-3-25/libgalera_smm.so
# scons编译后生成的文件
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.43.201,192.168.43.202"
# 集群内的ip
wsrep_node_name=jq1
# 集群的主机名
wsrep_node_address='192.168.43.201'
# 集群ip
8、初始化数据库(jq1需要) 并启动集群
./mysqld --defaults-fiel=/etc/my.cnf --initialize --user=mysql
# 路径写实际安装的路径
# ./mysqld_safe --wsrep_cluster_address=gcomm:// &
# 路径替换为实际的绝对路径,jq1直接启动,jq2地址在//后面填写jq1的ip后启动
# 后续每一个新节点加入都需要填写已知节点的ip地址
# ss -tunpl | grep mysqld
# 查看mysql的端口信息
9、登录数据库后查看集群是否添加了新节点
# show status like 'wsrep%';
# 查看galera集群状态
# show variables like 'wsrep_cluster_address';
# 查看集群地址