千家信息网

mysql中如何快速搭建PXC集群以及Mycat分片

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,mysql中如何快速搭建PXC集群以及Mycat分片,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。搭建PXC集群参考percona官方文
千家信息网最后更新 2025年01月21日mysql中如何快速搭建PXC集群以及Mycat分片

mysql中如何快速搭建PXC集群以及Mycat分片,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

搭建PXC集群

参考percona官方文档:

https://www.percona.com/doc/percona-xtradb-cluster/5.7/index.html

1 准备工作

1.1 下载软件

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

另外单独下载一个软件包:qpress-11-1.el7.x86_64.rpm

1.2 删除MariaDB

yum -y remove mari*

1.3 开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --zone=public --add-port=4444/tcp --permanentfirewall-cmd --zone=public --add-port=4567/tcp --permanentfirewall-cmd --zone=public --add-port=4568/tcp --permanentfirewall-cmd --reload

1.4 关闭SELinux

vi /etc/selinux/config#把SELINUX属性值设置成disabledreboot

2 安装软件(install PXC)

2.1 在线安装

$ sudo yum install Percona-XtraDB-Cluster-57

2.2本地安装

解压下载好的安装包,并将 qpress 包放入一起,然后进入目录,进行如下命令

$sudo yum localinstall  *.rpm

[^说明]: You need to have root access on the node where you will be installing Percona XtraDB Cluster (either logged in as a user with root privileges or be able to run commands with sudo

2.3 禁止开机自启动

chkconfig mysqld off

2.4 数据库初始化

  1. 启动服务

$sudo service mysql start
  1. 查看MySQL初始密码

cat /var/log/mysqld.log | grep "A temporary password"
  1. 用root账号登录

mysql -u root -p
  1. 修改密码

mysql_secure_installation
  1. 创建远程管理员账号

CREATE USER 'YXC_admin'@'%' IDENTIFIED BY 'Yxc_123456';GRANT all privileges ON *.* TO 'YXC_admin'@'%';FLUSH PRIVILEGES;#或者如下:CREATE USER 'YXC'@'localhost' IDENTIFIED BY 'passw0rd';GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON* . * TO 'YXC'@'localhost';mysql> FLUSH PRIVILEGES;
  1. 停止服务

$sudo service mysql stop

3 配置文件

Configure all nodes,配置文件内容:

# vim /etc/my.cnf[client]socket=/var/lib/mysql/mysql.sock[mysqld]server-id=31#server-id=1 #PXC集群中MySQL实例的唯一ID,不能重复,必须是数字datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.socklog-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pidlog-binlog_slave_updatesexpire_logs_days=7character_set_server = utf8bind-address = 0.0.0.0#跳过DNS解析skip-name-resolve# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0##集群部分wsrep_provider=/usr/lib64/galera3/libgalera_smm.sowsrep_cluster_name=pxc3-cluster #PXC集群的名称wsrep_cluster_address=gcomm://192.168.56.31,192.168.56.32,192.168.56.33wsrep_node_name=pxc31 #当前节点的名称wsrep_node_address=192.168.56.31 #当前节点的IPwsrep_sst_method=xtrabackup-v2 #同步方法(mysqldump、rsync、xtrabackup)wsrep_sst_auth= YXC_admin:Yxc_123456 #同步使用的帐户#SST means State Snapshot Transferpxc_strict_mode=ENFORCING #同步严厉模式binlog_format=ROW #基于ROW复制(安全可靠)default_storage_engine=InnoDB #默认引擎innodb_autoinc_lock_mode=2 #主键自增长不锁表

4 节点启停

引导节点启停(Bootstrap the first node)

systemctl start mysql@bootstrap.servicesystemctl stop mysql@bootstrap.servicesystemctl restart mysql@bootstrap.service

非引导节点启停(add other nodes)

service start mysqlservice stop mysqlservice restart mysql

判断引导节点

##cat /var/lib/mysql/grastate.dat# GALERA saved stateversion: 2.1uuid:    4580a102-bd96-11e9-a653-2a1e935fbf67seqno:   -1safe_to_bootstrap: 0#safe_to_bootstrap: 1,则为引导启动节点

如果最后关闭的PXC节点是安全退出的,那么下次启动要最先启动这个节点,而且要以引导节点启动
如最后关闭的PXC节点不是安全退出,要先修改/var/lib/mysql/grastate.dat 文件,把其中的 safe_to_bootstrap 属性值设置为1,再按照引导节点启动

5 状态信息

5.1 确认状态

show status like '%wsrep%';## wsrep:write set replication#Percona XtraDB Cluster is based on Percona Server running with the XtraDB storage engine. It uses the Galera library, which is an implementation of the write set replication (wsrep) API developed by Codership Oy. The default and recommended data transfer method is via Percona XtraBackup.

5.2 状态描述(图片来自网上,仅供参考)

6 同步原理(图片来自网上,仅供参考)

7. Mycat 分片

7.1 Mycat 安装

(1)安装JDK

#搜索JDK版本yum search jdk #安装JDK1.8开发版yum install java-1.8.0-openjdk-devel.x86_64

(2)配置环境变量

#查看JDK安装路径ls -lrt /etc/alternatives/javavi /etc/profile#在文件结尾加上JDK路径,例如export  JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/source  /etc/profile

(3)下载MyCat

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

(4)上传MyCat压缩包到虚拟机

(5)安装unzip程序包,解压缩MyCat

yum install unzipunzip MyCAT压缩包名称

(6) 开放防火墙8066和9066端口,关闭SELINUX

(7) 修改MyCat的bin目录中的权限

chmod -R 777 ./*.sh

(8) MyCat启动与关闭

#cd MyCat的bin目录./startup_nowrap.sh #启动MyCatps -aux #查看系统进程kill -9 MyCat进程编号

7.2 Mycat 配置

7.2.1 schema.xml


                                
select user() select user()

7.2.2 server.xml

                 Yxc_123456                ecs                                        

7.2.3 rule.xml

                                         sharding_id                        customer-hash-int                                 customer-hash-int.txt

8. Haproxy +keepalived负载均衡

  1. 用一个虚拟机实例部署Haproxy

    • 安装Haproxy

      yum install -y haproxy
    • 编辑配置文件

      vi /etc/haproxy/haproxy.cfg
      global    log         127.0.0.1 local2    chroot      /var/lib/haproxy    pidfile     /var/run/haproxy.pid    maxconn     4000    user        haproxy    group       haproxy    daemon    # turn on stats unix socket    stats socket /var/lib/haproxy/statsdefaults    mode                    http    log                     global    option                  httplog    option                  dontlognull    option http-server-close    option forwardfor       except 127.0.0.0/8    option                  redispatch    retries                 3    timeout http-request    10s    timeout queue           1m    timeout connect         10s    timeout client          1m    timeout server          1m    timeout http-keep-alive 10s    timeout check           10s    maxconn                 3000listen   admin_stats      bind    0.0.0.0:4001    mode  http    stats uri       /dbs    stats realm  Global\ statistics    stats auth    admin:abc123456listen   proxy-mysql    bind    0.0.0.0:3306      mode  tcp     balance  roundrobin    option  tcplog       #日志格式    server   mycat_1  192.168.99.131:3306  check  port  8066  maxconn  2000      server   mycat_2  192.168.99.132:3306  check  port  8066  maxconn  2000      option  tcpka        #使用keepalive检测死链
    • 启动Haproxy

      service haproxy start
    • 访问Haproxy监控画面

      http://192.168.99.131:4001/dbs

  2. 用另外一个虚拟机同样按照上述操作安装Haproxy

  3. 在某个Haproxy虚拟机实例上部署Keepalived

    • 开启防火墙的VRRP协议

      #开启VRRPfirewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --protocol  vrrp -j ACCEPT#应用设置firewall-cmd --reload
    • 安装Keepalived

      yum install -y keepalived
    • 编辑配置文件

      vim /etc/keepalived/keepalived.conf
      vrrp_instance  VI_1 {    state  MASTER    interface  ens33    virtual_router_id  51    priority  100    advert_int  1    authentication {        auth_type  PASS        auth_pass  123456    }    virtual_ipaddress {        192.168.99.133    }}
    • 启动Keepalived

      service keepalived start
    • ping 192.168.99.133

  4. 在另外一个Haproxy虚拟机上,按照上述方法部署Keepalived

  5. 使用MySQL客户端连接192.168.99.133

看完上述内容,你们掌握mysql中如何快速搭建PXC集群以及Mycat分片的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0