1、官网下载galera rpm包
http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/
2、上传到主机,并制作本地yum源
yum -y install createrepo
进入rpm包路径下,执行createrepo -v . ,查看路径下是否生成repodata文件夹
阿里镜像源下载epel源
3、主机解析、关闭防火墙和SELinux
4、配置本地galera源
vim galera.repo
[galera]
name=galera
baseurl=file:///root/galera
gpgcheck=0
yum makecache
yum list | grep ‘galera’
galera.x86_64 25.3.12-2.el7 epel (epel源提供galera包)
mysql-wsrep-5.7.x86_64 5.7.20-25.13.el7 galera
mysql-wsrep-client-5.7.x86_64 5.7.20-25.13.el7 galera
mysql-wsrep-common-5.7.x86_64 5.7.20-25.13.el7 galera
mysql-wsrep-devel-5.7.x86_64 5.7.20-25.13.el7 galera
mysql-wsrep-libs-5.7.x86_64 5.7.20-25.13.el7 galera
mysql-wsrep-libs-compat-5.7.x86_64 5.7.20-25.13.el7 galera
mysql-wsrep-server-5.7.x86_64 5.7.20-25.13.el7 galera
mysql-wsrep-test-5.7.x86_64 5.7.20-25.13.el7 galera
5、每台主机分别安装、启动、修改密码、创建同步数据用户
yum install mysql-wsrep-5.7.x86_64 galera rsync -y
systemctl start mysqld
grep password /var/log/mysqld.log
mysqladmin -u root -p’旧密码’ password ‘新密码’
mysql -u root -p
mysql> grant all on . to ‘gaoyong’@’%’ identified by ‘(GaoYong123)’;
mysql> flush privileges;
6、修改数据库配置文件
galera1配置:主配置文件my.cnf追加如下内容 写到最下面即可
server-id=11
binlog_format=row
default_storage_engine=InnoDB #默认存储引擎(可选的)
innodb_file_per_table=1 #独立的表空间(可选的)
innodb_autoinc_lock_mode=2 #可选的
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so # libgalera_smm.so 模块
wsrep_cluster_name=‘galera’ #集群的名字
wsrep_cluster_address=‘gcomm://’ #集群的地址(它是创始者暂时不填,如果mysql重启后,不会自动加入集群,需要更改为gcomm://galera2,galera3,galera4,然后重启mysql)
wsrep_node_name=‘galera1’ #此节点在集群中的名字
wsrep_node_address=‘192.168.171.11’ #此集群的地址 也就是本机ip
wsrep_sst_auth=gaoyong:’(GaoYong123)’ #mysql同步数据用户以及密码
wsrep_sst_method=rsync #数据传输的方式
galera2配置:主配置文件my.cnf追加如下内容
server-id=12
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name=‘galera’
wsrep_cluster_address=‘gcomm://galera1,galera3,galera4’ #(需要解析,或者写ip)
wsrep_node_name=‘galera2’
wsrep_node_address=‘192.168.171.12’
wsrep_sst_auth=gaoyong:’(GaoYong123)’
wsrep_sst_method=rsync
galera3配置:主配置文件my.cnf追加如下内容
server-id=13
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name=‘galera’
wsrep_cluster_address=‘gcomm://galera1,galera2,galera4’
wsrep_node_name=‘galera3’
wsrep_node_address=‘192.168.171.13’
wsrep_sst_auth=gaoyong:’(GaoYong123)’
wsrep_sst_method=rsync
galera4配置:主配置文件my.cnf追加如下内容
server-id=14
binlog_format=row
innodb_file_per_table=1
innodb_autoinc_lock_mode=2
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name=‘galera’
wsrep_cluster_address=‘gcomm://galera1,galera2,galera3’
wsrep_node_name=‘galera4’
wsrep_node_address=‘192.168.171.14’
wsrep_sst_auth=gaoyong:’(GaoYong123)’
wsrep_sst_method=rsync
保存修改后重启每台主机上面的mysql服务
systemctl restart mysqld
ss -auntpl | grep -E ‘3306|4567’ 查看端口:galera端口4567 mysql端口3306
7、测试
查看集群状态命令:show status like ‘wsrep%’;里面显示集群的IP信息及集群中有几台主机
在任何一台机器上写入数据,其他机器全部会同步就是正常的
8、备注
当时我们修改 galera1配置:主配置文件my.cnf的内容时如下
wsrep_cluster_address=‘gcomm://’ #集群的地址
如果重启这个台机器的服务的话 不会自动加入刚才搭建的集群,这时集群搭建好后 再次修改这个
配置文件 只改动这个一个地方就可以了
wsrep_cluster_address=‘gcomm://galera2,galera3,galera4’
然后重启即可 再重启任何一台机器 都会自动加入这个集群中来