Linux中级实战讲解--Mysql-galera集群

2023-10-29

Galera Cluster 介绍

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

1582424475728

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

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

[root@galera2 ~]# yum -y install ntp
[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

1582425424297

[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'

1582425897058

测试:

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

[root@mysql-1 ~]# mysql -u root -p'Qianfeng123!'
mysql> create database youngfit;
[root@mysql-2 ~]# mysql -u root -p'Qianfeng123!'

1582426021264

[root@mysql-3 ~]# mysql -u root -p'Qianfeng123!'
mysql> show databases;

1582426065443

[root@mysql-4 ~]# mysql -u root -p'Qianfeng123!'
mysql> show databases;

374881568)]

[root@mysql-3 ~]# mysql -u root -p'Qianfeng123!'
mysql> show databases;

[外链图片转存中…(img-bTu7s8Hi-1652374881569)]

[root@mysql-4 ~]# mysql -u root -p'Qianfeng123!'
mysql> show databases;

1582426102712

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux中级实战讲解--Mysql-galera集群 的相关文章

  • 参数无效”设置键“net.core.somaxconn”

    我尝试设置Linux内核 编辑后 etc sysctl conf并执行sysctl p它显示错误 Invalid argument setting key net core somaxconn Linux 发行版 Ubuntu 12 04
  • MySQL - 如何按相关性排序? INNODB表

    我在一个名为 cards 的 INNODB 表中有大约 20 000 行 所以 FULLTEXT 不是一个选项 请考虑这张表 id name description 1 John Smith Just some dude 2 Ted Joh
  • PHP PDF生成问题

    我使用 FPDF 在 PHP 中创建 pdf 我使用会话变量将变量在一种表单之间传递到另一种表单 当我提供一个值时 Report php
  • 如何在 Linux 上正确地将网络接口置于混杂模式

    那么如何正确地做到这一点呢 我知道如何通过创建套接字 然后使用 ioctl 设置 IFF PROMISC 标志来做到这一点 如 如何在C中检查网络设备状态 https stackoverflow com questions 3055622
  • c - 后台运行的程序的退出状态

    我有一个任务 其中我必须创建一个迷你 shell 它能够执行很多操作 包括作业控制 我设法使用 fork 和 execvp 创建新的工作 但我还想获取 execvp 运行的程序的退出代码 根据我从其他帖子中查找到的内容 我可以使用以下方法来
  • 如何配置和采样英特尔进程内性能计数器

    简而言之 我试图在用户级基准测试进程中实现以下目标 伪代码 假设 x86 64 和 UNIX 系统 results for iteration 0 iteration lt num iterations iteration pctr sta
  • 使用 sysfs 的 Linux 用户空间 GPIO 中断

    我想使用 sysfs 在用户空间上使用 GPIO 中断 我使用这些命令 root at91 gpio109 gt echo 109 gt export root at91 gpio109 gt cd gpio109 root at91 gp
  • Motif 库的水平绘制的 RowColumn 类 (C)?

    我正在使用 Motif Library 来完成我的工作 如果有人不熟悉这个库 您可以在这里找到文件列表https packages ubuntu com xenial amd64 libmotif dev filelist https pa
  • top命令的CPU使用率计算

    我正在尝试使用 GNU coreutil top 的公式来计算 CPU 使用率的百分比 但 top 正在使用一些 half total 来计算百分比 即在百分比上添加 0 5 在top的utils c中 以下行 在 3 8 beta1 中
  • 在带有 OR 条件的 LEFT JOIN 中使用索引

    考虑以下查询 SELECT FROM table1 LEFT JOIN table2 ON table2 some primary key table1 some primary key LEFT JOIN table3 ON table3
  • 提交ajax表单并停留在同一页面不起作用

    我想将用户的评论存储在我的数据库中 当用户提交时 我不想将他们重定向到新页面 我有以下代码 但它不起作用 我的 HTML 代码
  • 保存用户的身高和体重

    我应该如何将用户的身高和体重存储在MySQL数据库中 以便我可以使用这些信息来查找特定身高或体重内的用户 另外 我需要能够以英制或公制显示此信息 我的想法是存储以厘米为单位的身高和以公斤为单位的体重信息 我更喜欢公制而不是英制 我什至可以让
  • MySQL - 此版本的 MySQL 尚不支持“LIMIT 和 IN/ALL/ANY/SOME 子查询”

    这是php编码我正在使用的 Last Video db gt fetch all SELECT VID thumb FROM video WHERE VID IN SELECT VID FROM video WHERE title LIKE
  • 工厂模式数据库连接

    我正在尝试使用 MySQL 实现数据库连接上的工厂模式 SQL Server 面临奇怪的错误 你调用的对象是空的 在 SQL 命令对象上 internal class SqlServerDB IDatabase private SqlCon
  • H.323,如何制作一个没有媒体的简单环。该脚本遵循 Q.931 设置,但仍然无法正常工作

    谁能帮我解决这个问题吗 当我发送此请求时 我在wireshark中看到数据包将发送到1720 tcp端口中的SJPhone 但 SJPhone 仍然没有响铃 我想让它响起 无论媒体 我非常感谢您的支持 我一定缺少消息协议细节来实现这个 请给
  • 如何安装 Node 和 NPM 以便不必使用 sudo?

    我正在尝试在 Ubuntu 14 04 计算机上设置 Node js 和 NPM 但遇到了一些问题 在我的第一次尝试中 我不断得到EACCES尝试安装软件包时出错 有时甚至使用sudo 所以我彻底卸载了node和npm 现在我正在尝试找出如
  • WHERE 子句或 ON 子句中的 INNER JOIN 条件?

    我今天输错了一个查询 但它仍然有效并给出了预期的结果 我的意思是运行这个查询 SELECT e id FROM employees e JOIN users u ON u email e email WHERE u id 139840 但我
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 无法在 Centos 上安装 php-mysqli 扩展

    我正在尝试将 mysqli 扩展安装到 php yum install php mysqli 我收到下一个错误 Transaction Check Error file usr share mysql charsets Index xml
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也

随机推荐

  • [深入研究4G/5G/6G专题-55]: L3信令控制-4-软件功能与流程的切分-CU网元的信令

    目录 第1章 软件架构 1 1 总体架构 1 2 微服务架构 1 3 基本模型 第2章 5G CP IF 控制面对外的公共接口
  • 收藏一些很炫的html特效

    文字颜色变换
  • get;get属性器

    get set是用来扩展域的 也就是C里的变量 只是用起来更加灵活而己 看以下代码 using System public class cls private int book 定义一个域 也可以叫变量 只是面向对像里都这么叫 使用起来也更
  • 人工智能(AI)产生影响

    人工智能 AI 的快速发展已经开始对各个行业产生了深远的影响 作为一种人工智能技术的应用 自然语言处理模型也将对文章创作产生影响 以下是人工智能对文章创作行业可能产生的影响 1 帮助提高文章的质量和效率 自然语言处理模型已经可以模仿人类创作
  • DM JDBC 使用 Hikaricp连接池框架开发示例

    一 DM JDBC 配置指南 达梦数据库提供的JDBC驱动windows放置路径 D dmdbms drivers jdbc 具体数据库安装路径以实际为准 JDK1 5版本 使用 DmJdbcDriver15 jar JDK1 6版本 使用
  • Vue 3.0 全家桶 + Vite 从零配置开发环境、生产环境

    上篇文章我们对比了 Vite 与 Webpack 的差异 接下来 准备将项目中用到的 Webpack 5 0 替换为 Vite 2 0 我们先着手从零配置开发 生产环境 文章目录 一 初始化 1 初始化 package json 2 安装
  • 对抗验证概述

    了解如何实施对抗性验证 以建立分类器来确定您的数据是来自训练还是测试集 如果可以这样做 则您的数据有问题 并且对抗验证模型可以帮助您诊断问题 如果您要在Kaggle上研究一些获胜的解决方案 则可能会注意到对 对抗性验证 的引用 像这样 它是
  • QT5无法输入中文,如何解决???

    环境 UBUNTU 12 04 LTS 最近在Ubuntu下安装了QT5 0 2版本 在尝试完跑实例程序后 自己想做一个Socket的TCP IP通信例子 但是悲剧的发现QT5中竟然不能切换输入法到中文 所做尝试包括 1 换输入法fctix
  • 分页组件封装

    scss 分页 el pagination text align right margin top 20px span el pagination total position absolute left 0 is background e
  • 白盒测试基本方法

    白盒测试的概述 由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比 由于我们经常相信某逻辑路径不可能被执行 而事实上 它可能在正常的情况下被执行 由于代码中的笔误是随机且无法杜绝的 因此我们要进行白盒测试 白盒测试又称结构测试 透明
  • Maven : has broken classes path unknown

    1 美图 2 背景 windows下 因为要整理Maven 的pom文件 我加入了一个
  • Java提高篇——equals()方法和“==”运算符

    equals 超类Object中有这个equals 方法 该方法主要用于比较两个对象是否相等 该方法的源码如下 public boolean equals Object obj return this obj 我们知道所有的对象都拥有标识
  • wsl子系统Ubuntu18.04,cuDNN安装

    如果觉得本篇文章对您的学习起到帮助作用 请 点赞 关注 评论 留下您的足迹 本文主要wls子系统Ubuntu18 04安装cuDNN 安装cudnn坑巨多 因此记录以备日后查看 同时 如果能够帮助到更多人 也不胜荣幸 文章目录 一 下载安装
  • Xcopy 复制文件和目录,包括子目录

    Xcopy 复制文件和目录 包括子目录 语法 xcopy Source Destination w p c v q f l g d mm dd yyyy u i s e t k r h a m n o x exclude file1 fil
  • Spring FeignClient 遇到的参数问题(RequestParam.value() was empty on parameter 0)

    报错 Caused by java lang IllegalStateException RequestParam value was empty on parameter 0 代码 PostMapping value org getOrg
  • 下载徐小明新浪博客全部博文链接

    利用爬虫把徐小明新浪博客里的所有博文链接爬下来 保存到脚本所在路径的csv文件中 python2 7代码 把起始博文目录链接换成其他的也是完全可以的 详细内容请关注微信公众号 岛城窝窝 代码如下 usr bin env python cod
  • sklearn分类任务模型评价指标汇总与AUC-ROC曲线及代码示例

    文章目录 1 分类指标 2 整合工具函数 3 使用示例 1 分类指标 二分类可以参考下图 准确率 预测对的样本数 全部样本数 精确率 被预测出的正例样本数 预测为正例的样本数 召回率 预测且真的是正例的样本数 正例的样本数 二分类F1 2
  • 《Spring Boot实战》之二:开发第一个应用程序

    本章使用Spring Boot实现一个简单的例子 主要包括两个知识点 使用Spring Boot的起步依赖 使用Spring Boot自动进行Spring的配置 2 1 运用Spring Boot 下面将使用Spring Boot创建一个简
  • [力扣]只出现一次的数字

    给定一个非空整数数组 除了某个元素只出现一次以外 其余每个元素均出现两次 找出那个只出现了一次的元素 说明 你的算法应该具有线性时间复杂度 你可以不使用额外空间来实现吗 作者 力扣 LeetCode 链接 https leetcode cn
  • Linux中级实战讲解--Mysql-galera集群

    Galera Cluster 介绍 Galera是一个MySQL 也支持MariaDB Percona 的同步多主集群软件 主要功能 同步复制 Active active的多主拓扑结构 真正的multi master 即所有节点可以同时读写