galera部署
galera简介:
集成了Galera插件的MySQL集群,是一种新型的,高度冗余的高可用方案
wsrep:复制
galera特点:
• 多主架构:真正的多点读写的集群,在任何时候读写数据,都是最新的。
• 同步复制:集群不同节点之间数据同步,没有延迟,在数据库挂掉之后,数据不会丢失
• 并发复制:从节点APPLY数据时,支持并行执行,更好的性能
• 故障切换:在出现数据库故障时,因支持多点写入,切换容易
• 热插拔:在服务期间,如果数据库挂了,只要监控程序发现的够快,不可服务时间就会非常少。在节点故障期间,节点本身对集群的影响非常小
• 自动节点克隆:在新增节点,或者停机维护时,增量数据或者基础数据不需要人工手动备份提供,Galera Cluster会自动拉取在线节点数据,最终集群会变为一致
• 对应用透明:集群的维护,对应用程序是透明的
galera的部署
环境准备
- 主机解析:
vim /etc/hosts
- 关闭防火墙和selinux:
setenforce 0 && systemctl stop firewalld
- 时间同步:
安装时间服务器:
yum -y install ntp
修改时区:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
准备时间服务器:
vim /etc/ntp.conf
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
重新启动时间服务器
systemctl restart ntpd
客户端同步时间:(每一台都要执行)
ntpdate fuye3 //我这里以fuye3为基准
- 清理环境
卸载原有的mysql及相关信息
yum erase `rpm -qa | grep mysql` -y
删除有关mariadb的信息
yum -y remove mariadb*
下载安装包
根据官方下载提示找到下载路径,发现下载路径下是已经做好yum源的路径,所以可以直接修改yum配置文件使用yum安装
cd /etc/yum.repos.d/
创建yum仓库
[galera]
name=galera
baseurl=http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/
enabled=1
gpgcheck=0
yum list | grep 'galera' (检查作用,可以不操作)
安装
yum install mysql-wsrep-5.7.x86_64 galera rsync -y
安装完毕
启动数据库
- 启动
systemctl start mysqld
- 查看初始密码
cat /var/log/mysqld.log |grep password|grep localhost
- 修改密码
mysqladmin -uroot -p'jBxmlY<jW5Vu' password 'NEW-password123'
- 登录
mysql -uroot -pNEW-password123
部署
创建同步用户
每一台都要相同的操作
grant all on *.* to 'syncuser'@'%' identified by 'NEW-password123';
flush privileges;
配置fuye3
主配置文件my.cnf追加如下内容
vim /etc/my.cnf
server-id=1
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name='galera'
wsrep_cluster_address='gcomm://'
wsrep_node_name='fuye3'
wsrep_node_address='192.168.92.130'
wsrep_sst_auth=syncuser:'NEW-password123'
wsrep_sst_method=rsync
配置fuye4
主配置文件my.cnf追加如下内容
vim /etc/my.cnf
server-id=2
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name='galera'
wsrep_cluster_address='gcomm://fuye3,fuye5,fuye6'
wsrep_node_name='fuye4'
wsrep_node_address='192.168.245.133'
wsrep_sst_auth=syncuser:'NEW-password123'
wsrep_sst_method=rsync
配置fuye5
主配置文件my.cnf追加如下内容
vim /etc/my.cnf
server-id=3
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name='galera'
wsrep_cluster_address='gcomm://fuye3,fuye4,fuye6'
wsrep_node_name='fuye5'
wsrep_node_address='192.168.245.134'
wsrep_sst_auth=syncuser:'NEW-password123'
wsrep_sst_method=rsync
配置fuye6
主配置文件my.cnf追加如下内容
vim /etc/my.cnf
server-id=4
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_cluster_name='galera'
wsrep_cluster_address='gcomm://fuye3,fuye5,fuye4'
wsrep_node_name='fuye6'
wsrep_node_address='192.168.245.135'
wsrep_sst_auth=syncuser:'NEW-password123'
wsrep_sst_method=rsync
重启数据库
systemctl restart mysqld
查看端口:galera端口4567 mysql端口3306
ss -auntpl | grep -E '3306|4567'
测试
在数据库中检测
show status like 'wsrep%';
说明配置成功