proxySQL是MySQL的中间件产品,是灵活强大的代理层,实现读写分离,支持Query路由功能,支持动态指定某个SQL进行缓存,支持动态加载配置,故障切换和一些SQL

过滤功能

环境:

192.168.139.152  proxy SQL中间件   server-id=1

192.168.139.153  master mysql         server-id=2

192.168.139.154 slave mysql            server-id=3

proxy SQL更多信息可以访问 https://github.com/sysown/proxysql/wiki

MYSQL安装(all node)

要点:所有节点都安装MySQL并修改/etc/my.cnf 中的server-id

更新root密码123qweASD!

修改配置文件/etc/my.cnf

[mysqld]

server-id=1

mysql主从部署(master-slave)

从节点read_only=on

PROXYSQL安装(proxysql node)

安装依赖包:

yum install -y perl-DBD-MySQL  perl-DBI  perl-Time-HiRes perl-IO-Socket-SSL

创建repo文件

cat <<EOF | tee /etc/yum.repos.d/proxysql.repo
[proxysql_repo]
name= ProxySQL YUM repository
baseurl=http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/centos/\$releasever
gpgcheck=1
gpgkey=http://repo.proxysql.com/ProxySQL/repo_pub_key
EOF 安装proxy SQL
yum install -y proxysql proxysql配置文件的路径为 /etc/proxysql.cnf 启动proxy SQL
service proxysql start 查看proxysql版本:
proxy SQL--version proxy SQL 默认用户名/密码 admin/admin proxysql 管理端口6032 对外服务端口6033
登陆proxysql :
mysql -u admin -padmin -h 127.0.0.1 -P 6032
MySQL>show databases; 显示5个数据库 main disk stats monitor stats_history
main 内存配置数据库,即MEMORY ,表里存放后端db实例,用户验证,路由规则等信息
  主要表:mysql_servers 后端可以连接MySQL服务器的列表
      mysql_users 配置后端数据库的账户和监控账户
     mysql_query_rules 指定Query路由到后端不同服务器的规则列表
注:runtime 开头的表,表示当前运行的配置,不可修改;其余表修改后,LOAD使其生效,SAVE使其存到硬盘以供下次重启加载 master 节点创建proxy SQL监控账户:
create user 'monitor'@'192.168.139.%' identified by '123qweASD!';
grant all privileges on *.* to 'monitor'@'192.168.139.%' with grant option; master节点创建对外访问账户:
mysql> create user 'zs'@'192.168.139.%' identified by '123qweASD!';
mysql> grant all privileges on *.* to 'zs'@'192.168.139.%' with grant option; proxy SQL节点:添加主服务器列表 将主从MySQL加进去,自己不加
mysql -uadmin -padmin -h 127.0.0.1 -P 6032
mysql>insert into mysql_servers(hostgroup_id,hostname,port) values(10,'192.168.139.153',3306);
mysql>insert into mysql_servers(hostgroup_id,hostname,port) values(10,'192.168.139.154',3306);
mysql>load mysql servers to runtime;
mysql>save mysql servers to disk;

机器的状态都是online状态

proxysql配置监控账号
mysql> set mysql-monitor_username='monitor';
mysql> set mysql-monitor_password='123qweASD!'; ===》 /etc/proxysql.cnf 中的monitor_password也要修改 配置proxy SQL主从分组
mysql> insert into  mysql_replication_hostgroups values(10,20,'proxy');
mysql> load mysql servers to runtime;
mysql> save mysql servers to disk;

配置对外访问账号,默认指定库,并对该用户开启事务持久化保护

mysql> insert into mysql_users(username,password,default_hostgroup) values('zs','123qweASD!',10);
mysql> update mysql_users set transaction_persistent=1 where username='zs';
mysql> load mysql users to runtime;
mysql> save mysql users to disk; 验证登陆服务器就:
是主库
读写分离策略配置

mysql> insert into mysql_query_rules(active,match_pattern,destination_hostgroup,apply) values(1,'^SELECT.*FOR UPDATE$',10,1);  ===》写
mysql> insert into mysql_query_rules(active,match_pattern,destination_hostgroup,apply) values(1,'^SELECT',20,1); ===》读
mysql> load mysql query rules to runtime;
mysql> save mysql query rules to disk; 读写分离测试: mysql -u zs -p123qweASD! -h 192.168.139.152 -P 6033 登陆proxysql所在机器登陆数据库
mysql> select * from mysql.user; 读操作
mysql> create database zhangyu ; 写操作 登陆proxysql管理账户

10 是写库组 20是读库组

调整权重,让某个机器承受更多读操作

mysql> update mysql_servers set weight=10 where hostname='192.168.139.154';

mysql> load mysql servers to runtime;

mysql> save mysql servers to disk;

												

ProxySQL(读写分离)部署的更多相关文章

  1. mysqlfailover高可用与proxysql读写分离配置

    proxysql官方推荐两种高可用方案: 1.MHA+proxysql 2.mysqlrpladmin+proxysql MySQLfailover工具包含在mysqlrpladmin工具中,所以两者 ...

  2. MySQL ProxySQL读写分离实践

    目的 在上一篇文章MySQL ProxySQL读写分离使用初探里初步介绍了ProxySQL的使用,本文继续介绍它的一些特点和DBProxy的性能差异.深入一些去了解ProxySQL,通过测试来说明Pr ...

  3. 001.Amoeba读写分离部署

    一 Amoeba简介 Amoeba(变形虫)项目,该开源框架于2008年 开始发布一款 Amoeba forMysql软件.这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQ ...

  4. MHA+ProxySQL 读写分离高可用

    文档结构如下: 1.ProxySQL说明 ProxySQL是mysql的一款中间件的产品,是灵活的mysql代理层,可以实现读写分离,支持query路由器的功能,支持动态指定sql进行缓存,支持动态加 ...

  5. windows下Redis 主从读写分离部署

    原文:windows下Redis 主从读写分离部署 1.可直接下载window下的运行文件(下面这个链接) 也可以浏览github 查看相应的版本说明文档 https://github.com/Ser ...

  6. ProxySQL实现Mysql读写分离 - 部署手册

    ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎.ProxySQL是用C++语言开发的,也是percona推的一款中间件,虽然也是一个轻量级产品,但性能很好(据测试,能处理千亿级的数 ...

  7. MySQL ProxySQL读写分离使用初探

    目的 在美团点评DBProxy读写分离使用说明文章中已经说明了使用目的,本文介绍ProxySQL的使用方法以及和DBProxy的性能差异.具体的介绍可以看官网的相关说明,并且这个中间件也是percon ...

  8. ProxySQL读写分离

    我们首先看一下自己的环境: MHA已经搭建: master: slave: slave: MHA manager在172.16.16.34,配置文件如下: [root@localhost bin]# ...

  9. ProxySQL 读写分离实践

    前言 ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎.具有以下特性: 连接池,而且是 multiplexing 主机和用户的最大连接数限制 自动下线后端DB 延迟超过阀值 ping ...

  10. Proxysql读写分离配置

    ProxySQL是Percona主推的读写分离中间件,下载地址为: https://www.percona.com/downloads/proxysql/ 一.安装 1:下载 wget https:/ ...

随机推荐

  1. [No000010E]Git7/9-标签管理

    发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一个快照 ...

  2. Xml文件删除节点总是留有空标签

    ---恢复内容开始--- 在删除Xml文件时,删除成功后还有标签,让我百思不得其解,因为xml文档中留着这空标签会对后续的操作带来很多麻烦,会取出空值,人后导致程序中止. 导致这种情况的原因是删除xm ...

  3. [archlinux][crypto] 从T450迁移archlinux操作系统至T460s笔记本

    从T450笔记本迁移archlinux操作系统之T460s笔记本,同时: 1.  使用cryptsetup做底层块加密. 2.    全新使用btrfs文件系统. 一,硬盘分区. 1T的SSD,使用U ...

  4. [cipher][archlinux][disk encryption][btrfs] 磁盘分区加密 + btrfs

    科普链接:https://wiki.archlinux.org/index.php/Disk_encryption 前面的链接关于硬盘加密,讲了几种,基本上就是选dm-crypt with LUKS ...

  5. qtcreator添加绿色版VC编译器

    在不装VS的情况下为qtcreator添加VC编译器和调试器 首先假设在D盘有VC6,VC2002,VC2003,VC2005,VC2008,VC2010,VC2013等绿色版的VC编译器,编译器的的 ...

  6. JavaScript深度克隆

    深度克隆函数: function deepClone(obj){ var str = ""; var newobj = obj.constructor === Array ? [] ...

  7. 【托业】【新托业TOEIC新题型真题】学习笔记11-题库六-P7

    1.scam [skæm] n.骗局; 诡计; <美俚>诓骗; 故事;vt.欺诈; 诓骗; 2.interpersonal adj.人与人之间的; 人际的; 人与人之间的关系的; 涉及人与 ...

  8. 数据库级别DML操作监控审计、表触发器/对象触发器

    使用触发器记录DML,使用触发器记录表的DML 数据库级别DML操作监控审计.表触发器/对象触发器 --创建记录表 CREATE TABLE T_SHALL_LOG ( ID , ) , EVTIME ...

  9. mysql 数据操作 目录

    mysql 记录的增删改查 mysql 数据操作 单表查询 mysql 数据操作 多表查询

  10. Linux系统启动和内核管理

    Linux组成 由 kernel 和 rootfs 组成 单内核:(进程管理,内存管理,网络管理, 驱动程序,文件系统, 安全功能) /boot/vmlinuz-VERSION-release 辅助的 ...