安装第二个pxc集群

作为mycat的第二个分片

直接拷贝其中的一个虚拟机,然后还原到最初的状态,这样会小很多,启动改一下IP和基础配置,然后再次拷贝这个虚拟机两份改IP重启即可

正常安装pxc集群即可

主节点的配置记录

grastate.dat文件中记录着启动的bootstrap,当有节点以外退出时,为了保持数据一致性,pxc集群会认定最后一个节点的数据是最新的 safe_to_bootstrap 的值会改为1,把配置safe_to_bootstrap值为1当做主节点启动即可

当集群所有节点都意外退出时可以手动修改 safe_to_bootstrap的值为1,然后把这个节点当做主节点启动

[root@node6 ~]# cat /var/lib/mysql/grastate.dat

# GALERA saved state

version: 2.1

uuid:    a61559b1-f3c9-11e8-be12-666937c43234

seqno:   -1

safe_to_bootstrap: 0

Mysql中间件

安装mycat

Mycat是java开发的,要安装java环境

rpm –ivh jdk-8u181-linux-x64.rpm

# 加入环境变量

# vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64

export PATH=$JAVA_HOME/bin:$PATH

下载mycat1.6.5版本

http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz

mycat配置

逻辑库:chinasoft

表:t_user

创建数据表,用于保存切分数据

create table t_user(

id int(10) unsigned not null,

username varchar(200) not null,

password varchar(2000) not null,

tel char(11) character not null,

locked tinyint(1) unsigned not null default 0,

primary key (id) using btree,

index indx_username(username) using btree,

unique index unq_username(username) using btree);

schema.xml

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!-- 配置数据表 -->
<schema name="chinasoft" checkSQLschema="false" sqlMaxLimit="100">
<table name="t_user" dataNode="dn1,dn2" rule="mod-long" />
</schema>
<!-- 配置分配关系 -->
<dataNode name="dn1" dataHost="pxc-cluster" database="chinasoft" />
<dataNode name="dn2" dataHost="pxc-cluster02" database="chinasoft" />
<!-- 配置连接关系 pxc-cluster-->
<dataHost name="pxc-cluster" maxCon="1000" minCon="10" balance="2"
writeType="1" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="W1" url="10.11.0.210:3306" user="admin"
password="Abc_123456">
<readHost host="W1R1" url="10.11.0.212:3306" user="admin" password="Abc_123456" />
<readHost host="W1R2" url="10.11.0.215:3306" user="admin" password="Abc_123456" />
</writeHost>
<writeHost host="W2" url="10.11.0.212:3306" user="admin"
password="Abc_123456">
<readHost host="W2R1" url="10.11.0.210:3306" user="admin" password="Abc_123456" />
<readHost host="W2R2" url="10.11.0.215:3306" user="admin" password="Abc_123456" />
</writeHost>
</dataHost>
<!-- 配置连接关系 pxc-cluster02-->
<dataHost name="pxc-cluster02" maxCon="1000" minCon="10" balance="2"
writeType="1" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="W1" url="10.11.0.216:3306" user="admin"
password="Abc_123456">
<readHost host="W1R1" url="10.11.0.217:3306" user="admin" password="Abc_123456" />
<readHost host="W1R2" url="10.11.0.218:3306" user="admin" password="Abc_123456" />
</writeHost>
<writeHost host="W2" url="10.11.0.217:3306" user="admin"
password="Abc_123456">
<readHost host="W2R1" url="10.11.0.216:3306" user="admin" password="Abc_123456" />
<readHost host="W2R2" url="10.11.0.218:3306" user="admin" password="Abc_123456" />
</writeHost>
</dataHost> </mycat:schema>

rule.xml

Server.xml
<user name="admin" defaultAccount="true">
<property name="password">Abc_123456</property>
<property name="schemas">chinasoft</property> <!-- 表级 DML 权限设置 -->
<!--
<privileges check="false">
<schema name="TESTDB" dml="0110" >
<table name="tb01" dml="0000"></table>
<table name="tb02" dml="1111"></table>
</schema>
</privileges>
-->
</user> <user name="user">
<property name="password">user</property>
<property name="schemas">chinasoft</property>
<property name="readOnly">true</property>
</user>

第二个pxc集群的部署

[root@node6 ~]# cat /etc/my.cnf

[client]

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

[mysqld]

server-id=216

datadir=/var/lib/mysql

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

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

log-bin

log_slave_updates

expire_logs_days=7

# 数据库字符集

character_set_server = utf8

bind-address = 0.0.0.0

#跳过DNS解析

skip-name-resolve

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_name=pxc-cluster02

wsrep_cluster_address=gcomm://10.11.0.216,10.11.0.217,10.11.0.218

wsrep_node_name=pxc6

wsrep_node_address=10.11.0.216

wsrep_sst_method=xtrabackup-v2

wsrep_sst_auth= admin:Abc_123456

pxc_strict_mode=ENFORCING

binlog_format=ROW

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

************************************

[root@node7 ~]# cat /etc/my.cnf

[client]

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

[mysqld]

server-id=217

datadir=/var/lib/mysql

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

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

log-bin

log_slave_updates

expire_logs_days=7

# 数据库字符集

character_set_server = utf8

bind-address = 0.0.0.0

#跳过DNS解析

skip-name-resolve

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_name=pxc-cluster02

wsrep_cluster_address=gcomm://10.11.0.216,10.11.0.217,10.11.0.218

wsrep_node_name=pxc7

wsrep_node_address=10.11.0.217

wsrep_sst_method=xtrabackup-v2

wsrep_sst_auth= admin:Abc_123456

pxc_strict_mode=ENFORCING

binlog_format=ROW

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

************************************

[root@node8 ~]# cat /etc/my.cnf

[client]

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

[mysqld]

server-id=218

datadir=/var/lib/mysql

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

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

log-bin

log_slave_updates

expire_logs_days=7

# 数据库字符集

character_set_server = utf8

bind-address = 0.0.0.0

#跳过DNS解析

skip-name-resolve

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_name=pxc-cluster02

wsrep_cluster_address=gcomm://10.11.0.216,10.11.0.217,10.11.0.218

wsrep_node_name=pxc8

wsrep_node_address=10.11.0.218

wsrep_sst_method=xtrabackup-v2

wsrep_sst_auth= admin:Abc_123456

pxc_strict_mode=ENFORCING

binlog_format=ROW

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

# 启动第二个集群

[root@node6 ~]# systemctl start mysql@bootstrap.service

[root@node6 ~]# cat /var/log/mysqld.log |grep pass

2018-12-03T17:05:12.810880Z 1 [Note] A temporary password is generated for root@localhost: 6khOemMy,f.T

# 登录mysql重置root密码

alter user 'root'@'localhost' identified by 'root';

# 添加同步用户,启动从节点root密码和admin的账号信息就同步到了从节点

create user 'admin'@'localhost' identified by 'Abc_123456';

grant reload,lock tables,replication client,process on *.* to 'admin'@'localhost';

flush privileges;

# 启动从节点

systemctl start mysql

Mycat连接使用8066端口

使用mycat插入数据

use chinasoft;

select * from t_user;

insert into t_user(id,username,password,tel,locked)

values(

1,

'jack',

hex(AES_ENCRYPT('123456','helloworld')),

'13312345678',

false

);

插入两条数据,可以看到落到了不同的分片中

insert into t_user(id,username,password,tel,locked)

values(

2,

'tom',

hex(AES_ENCRYPT('123456','helloworld')),

'13312345678',

false

);

通过mycat可以查询汇总到一起

03中间件mycat对pxc集群的分片处理的更多相关文章

  1. KeepAlived+HaProxy+MyCat+Percona双机热备PXC集群

    一.搭建PXC集群 1.环境:centos7+PXC5.7.21+mycat1.6.5 2.卸载mariadb rpm -qa | grep mariadb* yum -y remove mariad ...

  2. PXC集群资料整理

    1.mysql集群方案对比 方案1  NDBCluster  参考:https://www.cnblogs.com/kevingrace/p/5685371.html?utm_source=itdad ...

  3. docker安装pxc集群

      前言 现在mysql自建集群方案有多种,keepalived.MHA.PXC.MYSQL主备等,但是目前根据自身情况和条件,选择使用pxc的放来进行搭建,最大的好处就是,多主多备,即主从一体,没有 ...

  4. 02使用java脚本向Pxc集群写入数据

    使用java脚本向Pxc集群写入数据 批量写入pxc集群程序 导入mysql驱动包 # 批量插入数据的java脚本 package pxc_demo; import java.sql.Connecti ...

  5. Docker 搭建pxc集群 + haproxy + keepalived 高可用(二)

    上一节我们有了两个分片的pxc集群,这一节我们接着安装haproxy和keepalived的实现集群的高可用 一.先下载haproxy的镜像 [root@localhost ~]# docker pu ...

  6. Docker 搭建pxc集群 + haproxy + keepalived 高可用(一)

    一.首先需要安装好docker,安装方法可以参考之前一篇博文Centos7安装docker [root@localhost ~]# systemctl start docker [root@local ...

  7. Docker下配置双机热备PXC集群

    架构: 步骤: 1.安装centos7   ,设置宿主机IP:192.168.1.224 2.先更新yum软件管理器,再安装docker 1.yum -y update 2.yum install - ...

  8. 用6个案例说明如何恢复PXC集群

    原文链接:https://blog.csdn.net/zengxuewen2045/article/details/51868976 1.   案例一:三个节点,关闭一个 由于维护和配置变更等工作需要 ...

  9. Docker搭建PXC集群

    如何创建MySQL的PXC集群 下载PXC集群镜像文件 下载 docker pull percona/percona-xtradb-cluster 重命名 [root@hongshaorou ~]# ...

随机推荐

  1. 搭建SpringMVC+Hibernate

    1.首先加入相关的jar包,配置web.xml文件,如下: <?xml version="1.0" encoding="UTF-8"?> <w ...

  2. [c++项目]迷宫 控制台游戏

    #include<stdio.h> #include<windows.h> #include<stdlib.h> #include<time.h> #i ...

  3. maven打包额外的资源文件

    在用Maven打包的时候发现,有一些资源文件打包不到jar包中,于是了解了一下Maven的打包配置,最后得到了解决问题的办法. Maven资源文件的默认约定 构建Maven项目的时候,如果没有进行特殊 ...

  4. springdata 动态查询之排序

  5. postgresql数据库去重方法

    数据库去重有很多方法,下面列出目前理解与使用的方法 第一种 通过group by分组,然后将分组后的数据写入临时表然后再写入另外的表,对于没有出现再group by后面的field可以用函数max,m ...

  6. 【简】题解 AWSL090429 【数塔问题】

    因为每次只ban一个点 而且不是永久性的 预处理出每个点从上往下和从下往上的最大值 每次询问直接暴力 被ban掉点那行去掉那点的最大值 也可以直接预处理出每行的最大值和次大值 还有种做法貌似可以过 预 ...

  7. Django视图

    Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...

  8. visp库中解决lapack库的问题

    解决的办法是——绕过去,不要用这个库: 使用中发现如下代码抛出异常: //vpTemplateTracker.cpp try { initHessienDesired(I); ptTemplateSu ...

  9. echarts纵坐标使用科学计数法表示

    最近做项目使用echart画图,发现纵坐标的刻度太大或太小的情况,导致页面十分难看,甚至出现遮挡的情况,所以想办法用科学计数法表示 代码如下: var option = { title: Echart ...

  10. (二叉树 递归) leetcode 145. Binary Tree Postorder Traversal

    Given a binary tree, return the postorder traversal of its nodes' values. Example: Input: [1,null,2, ...