CentOS 7 搭建PXC 数据库集群
PXC( Percona XtraDB Cluster ) 特点如下:

1.同步复制,事务要么在所有节点提交或不提交,保证了数据的强一致性。
2.多主复制,可以在任意节点进行写操作。
3.在从服务器上并行应用事件,真正意义上的并行复制。
Percona 下载地址

https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/

所有下载安装包如下:

Percona-XtraDB-Cluster

Percona-XtraBackup

jemalloc

qpress

#修改静态IP

ip addr

vi /etc/sysconfig/network-scripts/ifcfg-ens32

#修改并添加

BOOTPROTO=static

IPADDR=192.168.0.3
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.1
DNS2=8.8.8.8

service network restart

#先删除预装的 MariaDB
yum -y remove mari*

#解压所有安装包,到 /home 目录,执行批量安装
yum localinstall *.rpm

#查看 root 密码
cat /var/log/mysqld.log | grep "A temporary password"

#修改 root 密码,建议先创建快照,以便恢复.
mysql_secure_installation

#登录 mysql
mysql -h127.0.0.1  -u root  -p

#创建 admin 帐号
mysql> CREATE USER 'admin'@'%' IDENTIFIED BY 'Abc_123456';
mysql> GRANT all privileges ON *.* TO 'admin'@'%';
mysql> FLUSH PRIVILEGES;

mysql>exit

#修改 mysql 配置文件
vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
===>添加在 [mysqld] 下面:
[mysqld]
character_set_server=utf8
bind-address=0.0.0.0
#跳过DNS解析
skip-name-resolve
 
#修改集群配置文件
vi /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
 
===>对照配置文件,修改这些地方(红色标记是要改的地方)
 
[mysqld]

#集群名称
wsrep_cluster_name=pxc-cluster

#节点名称(每个节点不同)
wsrep_node_name=pxc-cluster-node-1

#节点IP
wsrep_node_address=192.168.0.11

#集群IP地址列表(3,4,5 最少三个节点)
wsrep_cluster_address=192.168.0.3,192.168.0.4,192.168.0.5

#同步数据时的帐户
wsrep_sst_auth="admin:Abc_123456"

#Galera 库
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

#基于ROW复制(安全可靠)
binlog_format=ROW

#默认存储引擎,目前MyISAM 还处于实验阶段
default_storage_engine=InnoDB

#从节点线程数
wsrep_slave_threads= 8

#是否记录有关冲突的其他信息
wsrep_log_conflicts=OFF

#主键自增长不锁表
innodb_autoinc_lock_mode=2

#同步严厉模式(DISABLED,PERMISSIVE,ENFORCING,MASTER)
pxc_strict_mode=ENFORCING

#同步方法(mysqldump、rsync、xtrabackup)
wsrep_sst_method=xtrabackup-v2

 
#把 SELINUX 值设置成 disabled
vi /etc/selinux/config
 
#禁止 mysql 自启动
chkconfig mysqld off
 
#开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4568/tcp --permanent
 
#重启服务器
reboot
 
至此,第一个节点服务器就建好了,如果你用的虚拟机的话,克隆该系统两份.这个时候是不无法通过 service mysql 启动的,因为当前是集群配置,没有没有集群的存在,当然启动失败.
接下来,再配置两台机器,可以直接克隆,然后改改.
 
如果是克隆的话,我说一个注意事项,首先,机器启动之前,把网卡地址改一下,不然,与前一台机器冲突了.然后再启动机器,修改静态IP.
 
#修改 server-id,每个集群中,编号唯一,可改成1.2.3编号
vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
 
准备就位后,把其中一台作为主节点启动,以创建集群,命令分别如下.
 
#主节点启动
systemctl start mysql@bootstrap.service
 
#非主节点启动
service  mysql start
 
另外注意一点,集群中,半数或半数以上的节点挂了,集群也就挂了.当重新启动集群时,能作为主节点启动的,往往是那台最后挂的服务器,因为它保存的数据是最完整的.
 
#查看哪能节点服务器能作为主节点启动
vi /var/lib/mysql/grastate.dat
 
找到 "safe_to_bootstrap: 0"  如果是 1 表示可以作为主节点启动,当三个节点同时挂了,那么全都是0,这时手动修改其中一个为1就好了.
最终实现的效果是数据库管理工具连接这三个数据库节点,然后,任意操作其中一个数据库,刷新另外两个,都能看到变一致的改变.
 
 

CentOS 7 搭建PXC 数据库集群的更多相关文章

  1. CentOS完美搭建Redis3.0集群并附测试

    线上的统一聊天和推送项目使用的是redis主从,redis版本2.8.6 redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口:slaveof ...

  2. docker应用-6(mysql+mycat 搭建数据库集群)

    上一节,通过使用overlay网络,搭建了跨主机的docker容器集群.下面,在这个跨主机的docker容器集群环境下,搭建mysql 数据库集群. mysql主从自动备份和自动切换 从数据安全性考虑 ...

  3. 【Data Cluster】真机环境下MySQL数据库集群搭建

    真机环境下MySQL-Cluster搭建文档  摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...

  4. Redis 非关系性数据库集群的搭建与常用方法

    redis 非关系型数据库,内存型数据库,现在大家都不陌生了,无论大中小型企业,都会将redis应用到自己的项目中,以此来减轻数据库的压力 安装步骤: 1.安装gcc 安装c语言的编译环境 yum i ...

  5. 超详细!CentOS 7 + Hadoop3.0.0 搭建伪分布式集群

    超详细!CentOS 7 + Hadoop3.0.0 搭建伪分布式集群 ps:本文的步骤已自实现过一遍,在正文部分避开了旧版教程在新版使用导致出错的内容,因此版本一致的情况下照搬执行基本不会有大错误. ...

  6. 手把手教你用Mysql-Cluster-7.5搭建数据库集群

    前言 当你的业务到达一定的当量,肯定需要一定数量的数据库来负载均衡你的数据库请求,我在之前的博客中已经说明了,如何实现负载均衡,但是还有一个问题就是数据同步,因为负载均衡的前提就是,各个服务器的数据库 ...

  7. 简单使用Mysql-Cluster-7.5搭建数据库集群

    阅读目录 前言 mysql cluster中的几个概念解释 架构图及说明 下载mysql cluster 安装mysql cluster之前 安装配置管理节点 安装配置数据和mysql节点 测试 启动 ...

  8. 【转】MYSQL-CLUSTER-7.5搭建数据库集群

    阅读目录 前言 mysql cluster中的几个概念解释 架构图及说明 下载mysql cluster 安装mysql cluster之前 安装配置管理节点 安装配置数据和mysql节点 测试 启动 ...

  9. 基于keepalived搭建MySQL热机集群

    背景 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,MMM,Heartbeat+DRBD,PXC,Galera Cluster 比较常用的是keepalived+双主,M ...

随机推荐

  1. CentOS7搭建FastDFS V5.11分布式文件系统-第三篇

    1.测试 前面两篇博文已对FastDFS的安装和配置,做了比较详细的讲解.FastDFS的基础模块都搭好了,现在开始测试下载. 1.1 配置客户端 同样的,需要修改客户端的配置文件: /etc/fdf ...

  2. C# 程序运行中的流程控制

    1.C#之流程控制语句:计算机程序执行的控制流程由三种基本的控制结构控制,即顺序结构,选择结构,循环结构. 1) 顺序结构:从上到下,按照书写顺序执行每一条语句,不会发生跳跃. 代码段1; // 先执 ...

  3. 数据库MySQL(课下作业,必做)

    数据库MySQL(课下作业,必做) 题目要求: 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,导入 ...

  4. sql server 只读帐号设置能读取存储过程,view等内容。

    如果设定了某个帐号是只读权限,是无法查看存储过程的,比如你用 sp_helptext '存储过程名' ,这样子会提示权限不足或者存储过程不存在,其实就是没权限, 要再给这个只读帐号用 sa 赋予它查看 ...

  5. 【jQuery源码】DOM Ready

    一直以来,各种JS最佳实践都会告诉我们,将JS放在HTML的最后,即</body>之前,理由就是:JS会阻塞下载,而且,在JS中很有可能有对DOM的操作,放在HTML的最后,可以尽可能的保 ...

  6. 关于mpvue和wafer2-client-sdk的 微信登录失败,请检查网络状态

    关于mpvue和wafer2-client-sdk的登录使用. 错误形式: <script> // import {get} from './util' import qcloud fro ...

  7. Hadoop HDFS概念学习系列之HDFS升级和回滚机制(十二)

    不多说,直接上干货! HDFS升级和回滚机制 作为一个大型的分布式系统,Hadoop内部实现了一套升级机制,当在一个集群上升级Hadoop时,像其他的软件升级一样,可能会有新的bug或一些会影响现有应 ...

  8. 关于符号Symbol第一篇

    Symbol类的一个实例代表一个符号.对于语法树来说,并不是每个节点都有一个符号实例.下面列举了哪些语法树节点具有符号的引用,如下表格: 其中JCNewClass.JCAssignOp.JCUnary ...

  9. 在k8s中搭建可解析hostname的DNS服务

    2016-01-25更新 上篇文章总结k8s中搭建hbase时,遇到Pod中hostname的DNS解析问题,本篇将通过修改kube2sky源码来解决这个问题. 1 前言 kube2sky在Githu ...

  10. Linux-(touch,cat,nl,more|less,head|tail)

    touch命令 1.命令格式: touch [选项]... 文件... 2.命令参数: -a   或--time=atime或--time=access或--time=use  只更改存取时间. -c ...