我认为在单个物理服务器上运行2个或多个Percona XtraDB Cluster(PXC)节点这样没有什么意义,除了教育和测试目的,但在这种情况下这样做仍然是有用的。最受欢迎的实现方式似乎是服务器的虚拟化,比如利用流浪盒子。但是同样的方式你可以运行多个MySQL实例在并行操作系统级别上,还有并发的mysqld的形成过程,因此你也可以有多个Percona XtraDB Cluster节点。而且实现这一目标的方法是恰恰相同的:使用专用的datadirs和为每个节点设置不同的端口。

哪个端口?

Pecona XtraDB Cluster 使用 4 个 TCP 端口:

常规的MySQL端口(默认3306)

(Galera)(默认4567)

状态传输端口(默认4444)

增量状态传输端口(默认是:组通信端口(4567)+ 1 = 4568)

当然,当你在同一台服务器上有多个实例的默认值,并不适用于所有人,所以我们需要为其他实例定义新的端口,确保本地防火墙对他们是开放的,如果有一个活动(iptables,selinux,…)。

安装Percona XtraDB 集群,配置并启动第一个节点

我的测试服务器用的是一个全新的CentOS(社区企业操作系统)6.5 版,系统安装了Percona yum 工具,通过工具我安装了最新的Percona XtraDB集群(5.6.20-25.7.888.el6版本);注意:你可能需要安装EPEL(企业版Linux额外包)和socat(Socket CAT)工具,这两个工具是独立的(见bug)。 为了避免冲突,我已经停止了mysql服务的自启动:

chkconfig –level 3 mysql off

chkconfig –del mysql

我原本计划从压缩包中安装PXC(Percona XtraDB Cluster),但是后来我决定通过yum工具进行安装,这样可以自动下载所有依赖包。 这是我最初的/etc/my.cnf 文件(注意默认值的使用):

[mysqld]

datadir = /var/lib/mysql

port=3306

socket=/var/lib/mysql/mysql-node1.sock

pid-file=/var/lib/mysql/mysql-node1.pid

log-error=/var/lib/mysql/mysql-node1.err

binlog_format=ROW

innodb_autoinc_lock_mode=2

wsrep_provider=/usr/lib64/libgalera_smm.so

wsrep_cluster_name = singlebox

wsrep_node_name = node1

wsrep_cluster_address=gcomm://

我使用下面的命令手动启动了一个节点上的集群引导程序:

$ mysqld_safe –defaults-file=/etc/my.cnf –wsrep-new-cluster

启动后,你应当可以通过本地接口访问该节点:

$ mysql -S /var/lib/mysql/mysql-node1.sock

配置和启动第二个节点

然后,我创建了一个类似的第二个实例配置文件的配置,我叫/etc/my2.cnf,有以下修改:

[mysqld]

datadir = /var/lib/mysql2

port=3307

socket=/var/lib/mysql2/mysql-node2.sock

pid-file=/var/lib/mysql2/mysql-node2.pid

log-error=/var/lib/mysql2/mysql-node2.err

binlog_format=ROW

innodb_autoinc_lock_mode=2

wsrep_provider=/usr/lib64/libgalera_smm.so

wsrep_cluster_name = singlebox

wsrep_node_name = node2

wsrep_cluster_address=gcomm://127.0.0.1:4567,127.0.0.1:5020

wsrep_provider_options = “base_port=5020;”

注意使用base_port:通过它定义的,5020端口是用于组通信和5020(上面)为IST保留着(一样简单的使用gmcast.listen_addr =tcp:/ / 127.0.0.1:5021)。

您需要在这第二个实例中为datadir创建和设置正确的权限,否则MySQL无法创建一些文件(像.pid和.err),虽然你不需要运行mysql_install_db脚本:

$ chown -R mysql:mysql /var/lib/mysql2

然后,您可以用以下命令启动第二个实例:

$ mysqld_safe –defaults-file=/etc/my2.cnf

当开始时,通过看日志来观察这第二个节点开始,与主节点间的通信和加入集群。从一开始的实例在不同的终端上执行:

$ tail -f /var/log/mysql2/mysql-node2.err

记住,任何时候都可以使用mysqladmin停止节点,您只需要提供正确的套接字作为参数,如:

$ mysqladmin -S /var/lib/mysql/mysql-node1.sock shutdown

最后,一旦你有整个集群,你应该编辑my.cnf中的第一节点与一个完整的wsrep_cluster_addres,在/etc/my2.cnf上面显示。

使用mysqld_multi

我最新的博客发表在使用myslqd_multi运行MySQL多实例.它也可以在这里使用,唯一的例外是,你需要确保,无论什么时候初始化运行集群,在第一个节点要使用“wsrep_cluster_address=gcomm://”,同时,注意在其它节点之前启动它.

在我看来,使用mysqld_multi的唯一优势,在于促进节点的管理(启动/停止),并集中所有的配置到单一的my.cnf文件中.除了教学目的,你完全不需要在单一服务器运行一个PXC集群.

为生产服务器增加第二个Percona XtraDB Cluster节点

如果你有一个生产集群,它们由多个物理服务器组成,同时,你想为其中之一增加第二个节点,这个情况会怎么样呢?它以同样的方式工作.配置的时候,你需要使用服务器的IP地址取代回路地址.这里有一个PXC集群的例子,初始情况下,它由三个节点组成: 192.168.70.1, 192.168.70.2和 192.168.70.3.我已经增加了第四个节点,它正运行并服务着第三个节点.在修改之后,wsrep_cluster_address 行看起来像下面这样:

wsrep_cluster_address = gcomm://192.168.70.1,192.168.70.2,192.168.70.3:4567,192.168.70.3:5020

其它资源

我有一个关于“如何在单一服务器配置三节点的集群”的参考资料页面,它采用了一些不同的方法,比我上面谈到的内容包含更多的细节.

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget

官方微博

TechTarget中国

单台mysql增加节点_如何在一台服务器上安装两个PXC集群节点相关推荐

  1. 一台服务器两个mysql_在一台服务器上安装两个或多个mysql的实现步骤_MySQL

    如何在一台服务器上安装两个或者更多个的mysql呢?下面是详细的操作步骤,一起来学习学习吧. 一.环境 mysql软件包: mysql-5.6.31.tar mysql-5.5.32.tar 操作系统 ...

  2. centos7 r语言安装_【DS】Centos7服务器上安装R和Rstudio

    笔者邀请您,先思考: 1 服务器上如何安装R和RStudio? 为了增加计算力来处理和整合更多和更杂的数据集,运维同事给我们分配了服务器.服务器是用Centos7的Linux系统,为了完成数据科学任务 ...

  3. 原创 【ReactJs+springBoot项目——租房】第13章:MySQL主从复制+MyCat数据库中间件+HAProxy+PXC集群

    分析目前系统架构中的数据库层存在的问题 分析MySQL数据库的集群方案 学习主从复制(读写分离)架构方案 掌握MyCat数据库中间件的使用 掌握HAProxy复制均衡的使用 掌握PXC集群的使用 多种 ...

  4. MySQL数据库集群之PXC方案---安装pxc集群

    1. 准备工作 1.1 准备虚拟机 因为我们要实现的是三台mysql节点集群,所以准备3台虚拟机 192.168.1.173 192.168.1.174 192.168.1.166 1.2 下载pxc ...

  5. 【ES实战】ES集群节点迁移与缩容补充说明

    [ES实战]ES集群节点迁移与缩容补充说明 [ES实战]ES集群节点迁移与缩容 文章目录 [ES实战]ES集群节点迁移与缩容补充说明 1.集群的现状分析和集群的规划 2.集群健康关注点,变化关注点 3 ...

  6. mysql数据库的pxc工具_CentOS7 下 MySQL 数据库 PXC 集群部署操作指导

    背景 最近在进行 MySQL 的 PXC 集群搭建使用和研究 前期已完成了一篇记录文章 : [CentOS7 下 MySQL 之 PXC 集群部署[Docker+多机多节点]] 但是,毕竟不是所有人都 ...

  7. kubernetes mysql pxc_K8S使用operator部署和管理Percona - PXC集群

    概述 pxc为mysql的一种集群模型,我们结合operator和k8s 完成pxc的部署和扩容 硬盘使用local卷,如何管理local卷请翻阅 我的另一篇文章 https://www.jiansh ...

  8. db2 数据库配置HADR+TSA添加集群节点

    Db2配置HADR高可用+TSA添加集群节点 一.服务器资源 Master IP:10.78.10.1 数据库:dbclass Slave IP:10.78.10.2 数据库:dbclass VIP: ...

  9. CentOs服务器下安装两个个MySql数据库踩坑日记

    本篇博客如题:在服务器上安装两个MySql. 背景: 其实并非本意非要安装两个服务器,奈何不知道前面项目的数据库密码,并且数据库版本是8.x,另外还有项目在上面运行,前面的人把数据库装到了系统盘,留下 ...

最新文章

  1. 解决AttributeError: module ‘tensorflow_core._api.v2.config‘ has no attribute ‘experimental_list_device
  2. mpstat 命令查看所有CPU核信息
  3. Docker笔记——jdk镜像制作
  4. 为什么 SAP Spartacus 不手动导入 UserAccountModule,就看不到 LoginForm?
  5. std::setprecision、std::ios::fixed使用说明
  6. imx6. android6.0经常修改或者用到的目录(未完)
  7. 网络调试助手连接mysql_网络调试助手模拟MQTT协议连接百度物联网并操作时序数据库...
  8. 使用按键精灵编写云顶之奕挂机脚本
  9. 鲍斯科机器人_芜湖鲍斯柯机器人有限公司、上海富治机械科技有限公司服务合同纠纷二审民事判决书...
  10. 迪杰斯特拉算法c语言6,迪杰斯特拉算法C语言实现
  11. 访问阿里云服务器配置的ftp后,报错227 entering passive mode
  12. 轩辕传奇场景优化笔记
  13. 别再傻傻分不清 AVSx H.26x MPEG-x 了
  14. oracle图书操作、sql语句查询+授权、视图、索引、表操作
  15. 基于jsp,javaweb、ssm教务管理系统
  16. 高德打车宣布上线共享雨伞:或许是醉翁之意不在酒
  17. 我的世界paperclip_使用PaperClip在Rails中上传文件
  18. krpano中视角js动态指向
  19. 操作系统C语言模拟内存分配算法的模拟实现
  20. c语言程序设计李东明 答案,电磁运动控制系统 李东明.doc

热门文章

  1. tornado函数和类的导入和ui_modules  , ui_methods
  2. 论文盘点:基于图卷积GNN的多目标跟踪算法解析
  3. “马踏飞”AI机器人实现方案介绍
  4. 全网最具有挑战的NLP训练营是什么样的?
  5. 近期知识图谱顶会论文推荐,你都读过哪几篇?
  6. Python数据分析·读取CSV文件转为字典
  7. poj 1844 数学题
  8. Git/码云上多人协作,创建分支,上传修改
  9. c++类指针赋值表达式必须是可修改的左值_C++进阶教程系列:全面理解C++中的类...
  10. Java与ElasticSerach的整合