主机数量:3台
实验环境:新装系统,纯净机。
操作系统版本:CentOS Linux release 7.9.2009 (Core)
目录
1.前期安装准备
首先关闭源主机的防火墙和selinux。
systemctl stop firewalld #临时关闭防火墙
setenforce 0 #临时关闭selinux
hostnamect set-hostname galera1 #更换节点名称,方便后续识别【自选】
vim /etc/hosts #配置端口映射
新增自己主机的端口映射,是自己节点主机的ip
增加以下内容:
192.168.221.130 galera1
192.168.221.131 galera2
192.168.221.132 galera3
2.软件选择/下载安装
进入galera官网,选择适合自己操作系统版本的galera。
官网地址:Downloads | Galera Cluster for MySQL
复制下载链接,到centos内使用wget进行下载
wget http://releases.galeracluster.com/galera-3/centos/7/x86_64/galera-3-25.3.37-1.el7.x86_64.rpm
如果没安装wget就使用yum先装一个。
yum insatll -y wget #安装wget工具
使用 yum install -y 文件名 进行安装
2.1安装支持wsrep插件的mysql版本
下载和安装Galera(每台都需要安装)
注意:Galera有独立的补丁包,也有在mysql基础上打好补丁的完整包 我们要下载带wsrep扩展补丁的版本,比如: MySQL 5.7.20 extended with wsrep patch version 25.13
配置yum源
进入 /etc/yum.repos.d 在下面创建一个方便你识别的,以galera命名的yum源。文件名可以是galera.repo
将以下内容加入到该文件内。
vim galera.repo
[galera]
name=galera
baseurl=http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/
enabled=1
gpgcheck=0
输入以下命令查看
yum list | grep 'galera'
正常会输出以下内容:
安装mysql rsync
yum install mysql-wsrep-5.7.x86_64 galera rsync -y
3.实验环境配置
启动数据库,进行基础配置,设置自己的密码·并为后续用来集群同步数据的用户配置密码。
通过grep过滤语句获取mysql初始化密码:
# systemctl start mysqld
grep password /var/log/mysqld.log
将mysql密码安全策略降档最低【临时修改】
set global validate_password_policy=0; #将安全策略降到最低
set global validate_password_length=0; #将密码长度要求降到最低
修改密码:
# mysqladmin -u root -p'2rttwxb?3_oP' password '你自己的密码'
或者:
# mysql -u root -p'Qianfeng123!'
每台机器创建用于数据同步的用户:
mysql> grant all on *.* to 'syncuser'@'%' identified by '123456';
4.设置时间同步(建议做)
# 下载适合自己当前操作系统的软件,这里使用ntp(network time protocol)
yum provides ntp # 获取提供命令的软件包
yum install -y ntp-4.2.6p5-29.el7.centos.2.x86_64 #安装软件
下载后进行软件配置 /etc/ntp.cnf
设置一台主机为 主服务器,其他两台为客户端服务器(去获取主服务器的时间)
我这里分别是
192.168.221.130 ~ 192.168.221.132 我把130设置成主服务器
#在主服务器/etc/ntp.cnf 里面新增以下内容
server 192.168.221.130
fudge 10
# 其他两台从服务器配置 增加 获取主服务器IP的内容
服务器1
server 192.168.221.130
服务器2
server 192.168.221.130
设置完成后启动ntp服务测试时间同步服务
#重新启动ntp
systemctl restart ntpd #不同版本启动命令可能有所不同
查看当前时间,并手动调整(ntpdate)
ntpdate
是一个用于手动更新系统时间的命令,它会从指定的 NTP(Network Time Protocol)服务器同步时间。
date #获取当前时间
#如果时间没有集群同步先不要启动,先同步时间
ntpdate -u 主机ip 这里是192.168.221.130
#主机时间联网矫正
ntpdate -u pool.ntp.org
#设置开机启动
systemctl enable ntpd
pool.ntp.org 是一个全球性的公共 NTP 服务器池,它由一组多个独立的 NTP 服务器组成,旨在提供准确和可靠的时间同步服务。
最后一切调试完成,记得为 ntp 设置开机启动服务,并查看是否设置成功。
systemctl list-unit-files --type=service --state=enabled
5.测试连接
按照主从时间节点挨个启动数据库,一定要在上一台成功启动后,再去启动下一台,登录先前配置好的集群同步数据账号。
查看端口:galera端口4567 mysql端口3306 检查服务启动情况。
ss -auntpl | grep -E '3306|4567'
使用之前配置的账号密码,成功登入mysql后,执行下面这条命令查看当前集群内的连接状态。
show status like 'wsrep%';
正常状态下,你的集群内有几台主机数量,在这里面的 wsrep_cluster_size 就会显示几
这时候在主节点进行数据库操作就都会同步到其他集群内的主机上了。