您当前的位置:首页 > 电脑百科 > 数据库 > MYSQL

MySQL之Galera集群部署

时间:2020-03-04 15:37:01  来源:  作者:

程序员云计算教程:MySQL之Galera集群部署,MySQL数据库是云计算人才必须要掌握的技能之一,其中涵盖很多的知识点,有基本的数据库操作,还有数据库集群部署等高阶知识。有很多同学想知道Galera集群部署怎么做,接下来好程序员云计算教程就给大家分享一下。

Galera是一个MySQL(也支持MariaDB,Percona)的同步多主集群软件。

主要功能

同步复制

Active-active的多主拓扑结构

真正的multi-master,即所有节点可以同时读写数据库

自动成员资格控制,失败节点从群集中删除

新节点加入数据自动复制

真正的并行复制,行级

项目,4台虚拟机

一定要固定ip地址

准备环境:

主机解析:

[root@mysql-1 ~]# cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.62.131 galera1

192.168.62.231 galera2

192.168.62.168 galera3

192.168.62.166 galera4

分别修改主机名称:

[root@localhost ~] hostnamectl set-hostname mysql-1

[root@localhost ~] hostnamectl set-hostname mysql-2

[root@localhost ~] hostnamectl set-hostname mysql-3

[root@localhost ~] hostnamectl set-hostname mysql-4

所有机器关闭防火墙和selinux:

# setenforce 0 && systemctl stop firewalld

时间同步:

所有机器修改时区:

# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

准备时间服务器:

galera1上操作

[root@mysql-1 ~]# yum -y install ntp

[root@mysql-1 ~]# vim /etc/ntp.conf //将下面两行添加进去

server 127.127.1.0 # local clock

fudge 127.127.1.0 stratum 10

[root@mysql-1 ~]# systemctl restart ntpd

其余3台客户端同步时间:

[root@galera2 ~]# ntpdate galera1

下载和安装Galera(每台都需要安装)

注意:Galera有独立的补丁包,也有在mysql基础上打好补丁的完整包

我们要下载带wsrep扩展补丁的版本,比如:

MySQL 5.7.20 extended with wsrep patch version 25.13

所以:删除原版本mysql:

[root@mysql-1 yum.repos.d]# yum erase `rpm -qa | grep mysql` -y

根据官方下载提示找到下载路径,发现下载路径下是已经做好yum源的路径,所以可以直接修改yum配置文件使用yum安装。

配置yum源:

[root@mysql-1 yum.repos.d]# yum -y install epel-release

[root@mysql-1 yum.repos.d]# cat galera.repo

[galera]

name=galera

baseurl=http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/

enabled=1

gpgcheck=0

[root@mysql-1 yum.repos.d]# yum list | grep 'galera'

galera.x86_64 25.3.12-2.el7 epel

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

注意:需要epel源提供galera包

安装:

[root@mysql-1 yum.repos.d]# yum install mysql-wsrep-5.7.x86_64 galera rsync -y

4台全部启动:

[root@mysql-1 ~]# systemctl start mysqld

[root@mysql-1 ~]# grep password /var/log/mysqld.log

[root@mysql-1 ~]# mysqladmin -u root -p'xCRk9#mws#.4' password 'Qianfeng123!'

4台分别创建同步数据的用户

[root@mysql-1 ~]# mysql -u root -p'Qianfeng123!'

mysql> grant all on *.* to 'syncuser'@'%' identified by 'Qianfeng123!@';

mysql> flush privileges;

配置Galera Replication:

galera1配置:主配置文件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/libgalera_smm.so

wsrep_cluster_name='galera'

wsrep_cluster_address='gcomm://'

wsrep_node_name='galera1'

wsrep_node_address='192.168.245.133'

wsrep_sst_auth=syncuser:'Qianfeng123!@'

wsrep_sst_method=rsync

galera2配置:主配置文件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/libgalera_smm.so

wsrep_cluster_name='galera'

wsrep_cluster_address='gcomm://galera1,galera3,galera4'

wsrep_node_name='galera2'

wsrep_node_address='192.168.245.136'

wsrep_sst_auth=syncuser:'Qianfeng123!@'

wsrep_sst_method=rsync

galera3配置:主配置文件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/libgalera_smm.so

wsrep_cluster_name='galera'

wsrep_cluster_address='gcomm://galera1,galera2,galera4'

wsrep_node_name='galera3'

wsrep_node_address='192.168.245.10'

wsrep_sst_auth=syncuser:'Qianfeng123!@'

wsrep_sst_method=rsync

galera4配置:主配置文件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/libgalera_smm.so

wsrep_cluster_name='galera'

wsrep_cluster_address='gcomm://galera1,galera2,galera3'

wsrep_node_name='galera4'

wsrep_node_address='192.168.245.135'

wsrep_sst_auth=syncuser:'Qianfeng123!@'

wsrep_sst_method=rsync

重启服务:每台机器

[root@mysql-1 ~]# systemctl restart mysqld

查看端口:galera端口4567 mysql端口3306

[root@mysql-1 ~]# ss -auntpl | grep -E '3306|4567'

测试:

在任何一台机器上写入数据,其他机器全部会同步

[root@mysql-1 ~]# mysql -u root -p'Qianfeng123!'

mysql> create database youngfit;

[root@mysql-2 ~]# mysql -u root -p'Qianfeng123!'

[root@mysql-3 ~]# mysql -u root -p'Qianfeng123!'

mysql> show databases;

[root@mysql-4 ~]# mysql -u root -p'Qianfeng123!'

mysql> show databases;



Tags:MySQL   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
作者:雷文霆 爱可生华东交付服务部 DBA 成员,主要负责Mysql故障处理及相关技术支持。爱好看书,电影。座右铭,每一个不曾起舞的日子,都是对生命的辜负。 本文来源:原创投稿 *爱可生...【详细内容】
2021-12-24  Tags: MySQL  点击:(7)  评论:(0)  加入收藏
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  Tags: MySQL  点击:(12)  评论:(0)  加入收藏
生成间隙(gap)锁、临键(next-key)锁的前提条件 是在 RR 隔离级别下。有关Mysql记录锁、间隙(gap)锁、临键锁(next-key)锁的一些理论知识之前有写过,详细内容可以看这篇文章...【详细内容】
2021-12-14  Tags: MySQL  点击:(18)  评论:(0)  加入收藏
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二...【详细内容】
2021-12-14  Tags: MySQL  点击:(13)  评论:(0)  加入收藏
为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查...【详细内容】
2021-12-09  Tags: MySQL  点击:(15)  评论:(0)  加入收藏
测试的目的和原因,公司有很多程序员,每个程序员对数据库和表结构都有自己的理解。而且每个程序员的理解往往是以效率考虑。既然都是为了效率考虑,那么我就来测试一下究竟哪种使...【详细内容】
2021-12-08  Tags: MySQL  点击:(14)  评论:(0)  加入收藏
当你们考虑项目并发的时候,我在部署环境,当你们在纠结使用ArrayList还是LinkedArrayList的时候,我还是在部署环境。所以啊,技术不止境,我在部环境。今天这篇文章缕一下在同一台服...【详细内容】
2021-12-08  Tags: MySQL  点击:(17)  评论:(0)  加入收藏
对于数据分析来说,MySQL使用最多的是查询,比如对数据进行排序、分组、去重、汇总及字符串匹配等,如果查询的数据涉及多个表,还需要要对表进行连接,本文就来说说MySQL中常用的查询...【详细内容】
2021-12-06  Tags: MySQL  点击:(21)  评论:(0)  加入收藏
在学习SQL语句之前,首先需要区分几个概念,我们常说的数据库是指数据库软件,例如MySQL、Oracle、SQL Server等,而本文提到的数据库是指数据库软件中的一个个用于存储数据的容器。...【详细内容】
2021-11-24  Tags: MySQL  点击:(23)  评论:(0)  加入收藏
概述以前参加过一个库存系统,由于其业务复杂性,搞了很多个应用来支撑。这样的话一份库存数据就有可能同时有多个应用来修改库存数据。比如说,有定时任务域xx.cron,和SystemA域...【详细内容】
2021-11-05  Tags: MySQL  点击:(31)  评论:(0)  加入收藏
▌简易百科推荐
作者:雷文霆 爱可生华东交付服务部 DBA 成员,主要负责Mysql故障处理及相关技术支持。爱好看书,电影。座右铭,每一个不曾起舞的日子,都是对生命的辜负。 本文来源:原创投稿 *爱可生...【详细内容】
2021-12-24  爱可生    Tags:MySQL   点击:(7)  评论:(0)  加入收藏
生成间隙(gap)锁、临键(next-key)锁的前提条件 是在 RR 隔离级别下。有关Mysql记录锁、间隙(gap)锁、临键锁(next-key)锁的一些理论知识之前有写过,详细内容可以看这篇文章...【详细内容】
2021-12-14  python数据分析    Tags:MySQL记录锁   点击:(18)  评论:(0)  加入收藏
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二...【详细内容】
2021-12-14  linux上的码农    Tags:mysql   点击:(13)  评论:(0)  加入收藏
为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查...【详细内容】
2021-12-09  元宇宙iwemeta    Tags:mysql   点击:(15)  评论:(0)  加入收藏
测试的目的和原因,公司有很多程序员,每个程序员对数据库和表结构都有自己的理解。而且每个程序员的理解往往是以效率考虑。既然都是为了效率考虑,那么我就来测试一下究竟哪种使...【详细内容】
2021-12-08  吴彬的分享    Tags:Mysql数据库   点击:(14)  评论:(0)  加入收藏
当你们考虑项目并发的时候,我在部署环境,当你们在纠结使用ArrayList还是LinkedArrayList的时候,我还是在部署环境。所以啊,技术不止境,我在部环境。今天这篇文章缕一下在同一台服...【详细内容】
2021-12-08  秃头码哥    Tags:MySQL数据库   点击:(17)  评论:(0)  加入收藏
对于数据分析来说,MySQL使用最多的是查询,比如对数据进行排序、分组、去重、汇总及字符串匹配等,如果查询的数据涉及多个表,还需要要对表进行连接,本文就来说说MySQL中常用的查询...【详细内容】
2021-12-06  笨鸟学数据分析    Tags:MySQL   点击:(21)  评论:(0)  加入收藏
在学习SQL语句之前,首先需要区分几个概念,我们常说的数据库是指数据库软件,例如MySQL、Oracle、SQL Server等,而本文提到的数据库是指数据库软件中的一个个用于存储数据的容器。...【详细内容】
2021-11-24  笨鸟学数据分析    Tags:SQL语句   点击:(23)  评论:(0)  加入收藏
概述以前参加过一个库存系统,由于其业务复杂性,搞了很多个应用来支撑。这样的话一份库存数据就有可能同时有多个应用来修改库存数据。比如说,有定时任务域xx.cron,和SystemA域...【详细内容】
2021-11-05  Java云海    Tags:分布式锁   点击:(31)  评论:(0)  加入收藏
MySQL的进阶查询 一、 按关键字排序 使用ORDERBY语句来实现排序排序可针对一个或多个字段ASC:升序,默认排序方式 【升序是从小到大】DESC:降序 【降序是从大到小】ORDER BY的...【详细内容】
2021-11-05  Java热点    Tags:SQL语句   点击:(28)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条