云计算篇-Linux下MySQL的多源主从集群和Galera集群
目录
如果大家喜欢可以点一个小小的关注,后续持续更新云计算相关技术
一.多源主从集群
##注意我这里是双主双从需要四台机器进行配置
##默认四台机器的mysql都已经安装好(具体怎么安装看笔记之前的安装教程),然后防火墙和SElinux已经关闭,配置了四台机器的hosts的DNS解析
1配置master
1.1配置master1
修改my.cnf文件
[root@mysql-master1 ~]# vim /etc/my.cnf
#在里面添加
log-bin=mylog #打开binlog日志
server-id=1
master-info-repository=TABLE
relay-log-info-repository=TABLE
##修改完配置文件记得重启mysql

1.2配置master1的主从
查看master2的binlog日志信息
mysql> show master status\G

配置master1的slave信息
登录进入master1的mysql
mysql> change master to --设置mysql-mastre2为自己的主节点
master_host='mysql-master2',
master_user='amo',
master_password='amo@2501',
master_log_file='mylog.000001',
master_log_pos=620 for channel 'mysql-master2';
mysql> start slave;
mysql> show slave status\G
进入mysql创建同步用户

1.3配置master2
修改my.cnf文件
[root@mysql-master1 ~]# vim /etc/my.cnf
#在里面添加
log-bin=mylog #打开binlog日志
server-id=2
master-info-repository=TABLE
relay-log-info-repository=TABLE
##修改完配置文件记得重启mysql
进入mysql创建同步用户

1.4配置master2的主从
查看master1的binlog信息

配置master2的slave信息
登录进入master2的mysql
mysql> change master to --设置mysql-mastre1为自己的主节点
master_host='mysql-master1',
master_user='amo',
master_password='amo@2501',
master_log_file='mylog.000001',
master_log_pos=620 for channel 'mysql-master1';
mysql> start slave;
mysql> show slave status\G

2.配置slave
##slave1和slave2的配置基本上是相同的,只有my.cnf中的server-id是不同的
vim /etc/my.cnf
slave1的id为3,slave2的id为4
server-id=3
master-info-repository=TABLE
relay-log-info-repository=TABLE

登录进入mysql
##配置slave信息(这里slave1和slave2的配置信息都是相同的,配置两个主节点)
mysql> \e
change master to --设置mysql-mastre1为自己的主节点
master_host='mysql-master1',
master_user='amo',
master_password='amo@2501',
master_log_file='mylog.000001', --我这里不一样,根据你自己的名称和位置去写
master_log_pos=620 for channel 'mysql-master1'; #这里的binlog信息是按照上面show master status查找的,因为我本身没有改变所以信息没有改变
mysql> \e
change master to --设置mysql-mastre2为自己的主节点
master_host='mysql-master2',
master_user='amo',
master_password='amo@2501',
master_log_file='mylog.000001', --我这里不一样,根据你自己的名称和位置去写
master_log_pos=620 for channel 'mysql-master2';#这里的binlog信息是按照上面show master status查找的,因为我本身没有改变所以信息没有改变
#都启动slave
mysql> start slave; #默认启动所有 也可以 for channel 指定信道启动
mysql> show slave status\G #默认查看所有slave信息,也可以for channel 指定信道查询


3.验证集群
#我这里的数据库都是新创建所以没有创建任何新数据
3.1在master1上创建新数据

master2数据已经同步

slave1和slave2也同时同步 这里只展示了slave1

4.高可用性验证
停止一个master节点,这里关闭了master1节点
##注意:mysql-5.7.44版本下 直接重新启动mysql就可以重新连接上mysqld
一般不需要清除故障机器的mysql的所有数据然后再启动
这里说的是mysql-5.7.36版本
这里停止了master2的mysql 导致master1和slave1和slave2已经连接不上master2的节点
修复流程##这里只有流程
二.Galera 集群
Galera是一个MySQL(也支持MariaDB,Percona)的同步多主集群软件。
主要功能 同步复制 Active-active的多主拓扑结构 真正的multi-master,即所有节点可以同时读写数据库,自动成员资格控制,失败节点从群集中删除 ,新节点加入数据自动复制 真正的并行复制。
##默认关闭防火墙和SElinux,以及配置了hosts解析
/etc/hosts中
192.168.242.141 galera1
192.168.242.139 galera2
192.168.242.137 galera3
192.168.242.138 galera4
1.同步时间
##四个电脑同步一个时间
四台机器都安装ntp
[root@galera1 ~]# yum -y install ntpdate
在galera1上操作
[root@galera1 ~]# vim /etc/ntp.conf
#添加
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
其余三台
[root@galera2 ~]# ntpdate galera1
2.配置galeral
##四个电脑需要完全删除原mysql社区版本
2.1 MySQL-wsrep安装
需要下载带有wsrep扩展补丁的版本
[root@galera1 ~]# yum -y remove mysql
[root@galera1 ~]# yum remove mysql-community-libs mysql-community-libs-compat #建议卸载之后再使用这个完全清除一下,要不然下载mysql-wsrep版本会失败
#四台机器都配置galera.repo源
[root@galera1 ~]# vim /etc/yum.repos.d/galera.repo
[galera]
name=galera
baseurl=http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/
enabled=1
gpgcheck=0
#四台机器都安装mysql-wsrep
[root@galera1 ~]# yum install mysql-wsrep-5.7.x86_64 galera rsync -y
####
这里省略四台机器启动mysql然后更改密码的步骤,如果你这个都不会建议从头开始看
####
2.2配置Galera
#登录进入mysql 四台机器都需要创建同步数据的用户 我这里都创建相同的
mysql> grant all on *.* to 'amo'@'%' identified by 'Amo@1234';
mysql> flush privileges;
下面只有galera1的配置,其他配置只有IP和集群节点地址不同,其他都是一样的,自行配置
#galera1配置:主配置文件/etc/my.cnf追加如下内容
server-id=1 # 服务器唯一标识
binlog_format=row # 二进制日志格式设置为行,这是Galera集群推荐的方式
innodb_file_per_table=1 # 每个InnoDB表使用单独的表空间文件
innodb_autoinc_lock_mode=2 # 自增锁模式设置为交错模式,提高并发插入性能
wsrep_on=ON # 启用Galera复制插件
wsrep_provider=/usr/lib64/galera/libgalera_smm.so # Galera插件库文件路径
wsrep_cluster_name='galera' # 集群名称,所有节点必须相同
wsrep_cluster_address='gcomm://' # 集群节点配置 这里除了galera1不用填写,其他机器需要填写除本身以外的机器,比如galera2就需要填写galera1,galera3,galera4三台机器
wsrep_node_name='galera1' # 当前节点名称
wsrep_node_address='192.168.245.133' #填写本机IP
wsrep_sst_auth=syncuser:'Amo@1234' #创建的同步用户的密码
wsrep_sst_method=rsync # 状态快照传输方式,rsync是基本方法
#####
配置修改完记得重启mysql!!!!!!
2.3测试Galera
#查看端口是否成功打开
[root@galera1 ~]# netstat -auntpl | grep -E '3306|4567'

#我这里旨在Glaera1中创建库、插入数据然后其他三台都成功出现

如果大家喜欢可以点一个小小的关注,后续持续更新云计算相关技术
更多推荐
所有评论(0)