proxymysql的安装与应用

时间:2022-12-23 02:01:00

具体的资料我们可以查看官方的文档:https://github.com/sysown/proxysql/wiki/ProxySQL-Configuration

推荐下载最新的Proxysql。

下面跟大家一起来安装和使用我们的proxy的一个简单使用。

首先我给大家说说Proxy的一些理论知识,说到中间件,首先我们关注的可定是自带连接池,能读写分离,能自动的分库分表等等,其它的就不说了,反正Proxy在每个公司玩的花样都蛮多的。我就跟大家说说我印象中的ProxySQL:server可以进行分组、 读写分离  动态指定某一个SQL进行Cache、 故障切换(依赖于他的配置动态加载)、配置的动态更新,不具备故障选主(可以结合keepalived )Proxy的一些其他优点:

1.SQL 的归一化统计, 2  .可以在6033 端口上进行数据的一些统计  3  prepare

connection pool的概念:1 连接池保护 2允许延迟最大值(max_replication_lag)3对响应延迟 (max_latency_ms)

环境说明:我在我的虚拟机上面安装了2个MySQL的实例.  端口一个是3306 ,另外一个是3307

1:启动我们的proxysql

service proxysql start

小结:和MySQL的很相似,我们启动一个进程,然后fork出一个子进程,父进程负责监控子进程运行状况如果挂了则拉起来,子进程负责执行真正的任务。

ProxySQL也是有管理接口和客户端接口,通过配置文件/etc/proxysql.cnf可以看到管理和客户端接口的信息

2 查看端口号

      观察到我们可以看到2个端口号:一个是 6032(管理端口)  一个是6033(对外链接端口)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 *:sunrpc                    *:*                         LISTEN      
tcp        0      0 *:6032                      *:*                         LISTEN      
tcp        0      0 *:6033                      *:*                         LISTEN      
tcp        0      0 *:ssh                       *:*                         LISTEN      
tcp        0      0 localhost:ipp               *:*                         LISTEN      
tcp        0      0 *:4505                      *:*                         LISTEN      
tcp        0      0 localhost:smtp              *:*                         LISTEN      
tcp        0      0 *:4506                      *:*                         LISTEN      
tcp        0      0 *:43709                     *:*                         LISTEN      
tcp        0      0 pxc1:ssh                    192.168.5.209:51899         ESTABLISHED
tcp        0      0 10.0.2.15:54410             64.145.88.40:http           ESTABLISHED
tcp        0      0 *:46667                     *:*                         LISTEN  
   二:登录到我们管理的界面查看表信息的一些操作。
/usr/local/mysql/bin/mysql -h127.0.0.1 -uadmin -padmin -P6032 
proxymysql的安装与应用
[root@pxc1 etc]# /usr/local/mysql/bin/mysql -h127.0.0.1 -uadmin -padmin -P6032
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.7.20 (ProxySQL Admin Module)
Copyright (c) 2009-2017 Percona LLC and/or its affiliates
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
       操作我们的管理界面:
       查看我们的库
"admin@127.0.0.1:6032  [(none)]>show databases;
proxymysql的安装与应用
+-----+---------+-------------------------------+
| seq | name    | file                          |
+-----+---------+-------------------------------+
| 0   | main    |                               |
| 2   | disk    | /var/lib/proxysql/proxysql.db |
| 3   | stats   |                               |
| 4   | monitor |                               |
+-----+---------+-------------------------------+
 
       查看mian下面的表:
use main
show create table global_variables;
     proxymysql的安装与应用
"admin@127.0.0.1:6032  [main]>show create table global_variables;
+------------------+----------------------------------------------------------------------------------------------------------------------+
| table            | Create Table                                                                                                         |
+------------------+----------------------------------------------------------------------------------------------------------------------+
| global_variables | CREATE TABLE global_variables (
    variable_name VARCHAR NOT NULL PRIMARY KEY,
    variable_value VARCHAR NOT NULL) |
+------------------+----------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
 
 
    三配置:
 
     1 创建mysql_servers
        insert into mysql_servers(hostgroup_id,hostname,port) values(1,'127.0.0.1',3306);
        insert into mysql_servers(hostgroup_id,hostname,port) values(2,'127.0.0.1',3307);
        LOAD MYSQL SERVERS TO RUNTIME;
 
select * from mysql_servers;

proxymysql的安装与应用


2:配置用户

  INSERT INTO mysql_users(username,password,default_hostgroup,default_schema) VALUES ('root','123456',1,'book');
  INSERT INTO mysql_users(username,password,default_hostgroup,default_schema) VALUES ('czg','123456',1,'book');
    LOAD MYSQL USERS TO RUNTIME;
 
     proxymysql的安装与应用
 3规则的配置:
  INSERT INTO mysql_query_rules(active,username,match_pattern,destination_hostgroup,apply) VALUES(1,'root','^SELECT.*FOR UPDATE$',1,1);
  INSERT INTO mysql_query_rules(active,username,match_pattern,destination_hostgroup,apply) VALUES(1,'root','^SELECT',2,1);
规则的生效:LOAD MYSQL  QUERY   RULES  TO RUNTIME
                     LOAD MYSQL QUERY RULES TO RUN;(最后运行我们的规则)
 
四:前端连接proxy
 
[root@pxc1 ~]# /usr/local/mysql/bin/mysql -h127.0.0.1 -uczg -P6033 -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.20 (ProxySQL)
Copyright (c) 2009-2017 Percona LLC and/or its affiliates
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
      这个时候我们就可以在里面进行我们的增删改查的命令。基本上和我们连接mysql客户端操作是一样的。
 
 五:管理平台查看
"admin@127.0.0.1:6032  [monitor]>select * from stats_mysql_query_digest;
+-----------+------------+----------+--------------------+----------------------------------+------------+------------+------------+----------+----------+----------+
| hostgroup | schemaname | username | digest             | digest_text                      | count_star | first_seen | last_seen  | sum_time | min_time | max_time |
+-----------+------------+----------+--------------------+----------------------------------+------------+------------+------------+----------+----------+----------+
| 100       | czg        | czg      | 0x3765930C7143F468 | select * from t1                 | 12         | 1510032943 | 1510035665 | 20094    | 576      | 7004     |
| 100       | czg        | czg      | 0xF62E7C5ACFD919B2 | insert into t1 values (?,?)      | 2          | 1510033783 | 1510034106 | 2583     | 1157     | 1426     |
| 100       | czg        | czg      | 0x54C6E5B16410BDE5 | delete from t1 where id=?        | 1          | 1510039448 | 1510039448 | 744      | 744      | 744      |
| 100       | czg        | czg      | 0x226CD90D52A2BA0B | select @@version_comment limit ? | 1          | 1510032930 | 1510032930 | 0        | 0        | 0        |
| 101       | czg        | czg      | 0x4DE01DE1A91A7A02 | select * from t1 where id>?      | 1          | 1510036110 | 1510036110 | 1347     | 1347     | 1347     |
| 1         | czg        | root     | 0x226CD90D52A2BA0B | select @@version_comment limit ? | 1          | 1510026604 | 1510026604 | 0        | 0        | 0        |
| 1         | czg        | root     | 0x99531AEFF718C501 | show tables                      | 2          | 1510026649 | 1510026878 | 20001881 | 10000756 | 10001125 |
| 1         | czg        | root     | 0xBA1ADF966D0B70F4 | show databses                    | 1          | 1510026623 | 1510026623 | 10001112 | 10001112 | 10001112 |
| 1         | czg        | root     | 0x02033E45904D3DF0 | show databases                   | 2          | 1510026897 | 1510026946 | 20000713 | 10000051 | 10000662 |
| 100       | czg        | czg      | 0x6F60EEB7FFFC144D | insert into values (?,?)         | 1          | 1510034097 | 1510034097 | 547      | 547      | 547      |
| 1         | czg        | root     | 0x594F2C744B698066 | select USER()                    | 1          | 1510026604 | 1510026604 | 0        | 0        | 0        |
| 100       | czg        | czg      | 0x620B328FE9D6D71A | SELECT DATABASE()                | 1          | 1510032938 | 1510032938 | 523      | 523      | 523      |
| 100       | czg        | czg      | 0x3DCE919B79C9576C | select * from t1 where id=?      | 1          | 1510033820 | 1510033820 | 1570     | 1570     | 1570     |
| 100       | czg        | czg      | 0x28652853E5DCDAB9 | select * from t1 where id =?     | 1          | 1510033203 | 1510033203 | 540      | 540      | 540      |
| 100       | czg        | czg      | 0x4DE01DE1A91A7A02 | select * from t1 where id>?      | 1          | 1510034958 | 1510034958 | 1281     | 1281     | 1281     |
| 100       | czg        | czg      | 0x594F2C744B698066 | select USER()                    | 1          | 1510032930 | 1510032930 | 0        | 0        | 0        |
| 100       | czg        | czg      | 0x9ED2186F2E9C392C | update t1 set name=? where id=?  | 2          | 1510034987 | 1510036037 | 3477     | 1410     | 2067     |
| 101       | czg        | czg      | 0x9FF6DCAA8E5CFDBB | select * from t3                 | 1          | 1510035978 | 1510035978 | 3964     | 3964     | 3964     |
| 100       | czg        | czg      | 0x02033E45904D3DF0 | show databases                   | 1          | 1510032934 | 1510032934 | 4791     | 4791     | 4791     |
| 101       | czg        | czg      | 0x3DCE919B79C9576C | select * from t1 where id=?      | 1          | 1510036074 | 1510036074 | 947      | 947      | 947      |
| 100       | czg        | czg      | 0x340305CD48735BD6 | insert into t1 names (?,?)       | 1          | 1510039342 | 1510039342 | 521      | 521      | 521      |
| 101       | czg        | czg      | 0x3765930C7143F468 | select * from t1                 | 3          | 1510035957 | 1510039371 | 5215     | 452      | 3027     |
| 100       | czg        | czg      | 0x3CE4C46484576DFD | insert into t1 values(?,?)       | 2          | 1510039362 | 1510039411 | 2422     | 865      | 1557     |
+-----------+------------+----------+--------------------+----------------------------------+------------+------------+------------+----------+----------+----------+
     23 rows in set (0.00 sec)
 
 
    我们要清空 stats_mysql_query_digest 的数据直接执行以下的语句即可:
select * from stats_mysql_query_digest_reset;
 
 
 
 
 
 
 
 
 
 
 
 

proxymysql的安装与应用的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  3. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  4. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  5. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  6. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  7. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  8. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  9. tLinux 2.2下安装Mono 4.8

    Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...

随机推荐

  1. 关于textarea中换行、回车、空格的识别与处理

    需求:在textarea中输入文字,提交给后台后,后台输出在另一个页面,文字按原格式显示.   问题:如何还原输入框中的换行和空格? 兼容性:IE9以上.FF.chrome在换行处匹配/\n/     ...

  2. [Openstack] Expecting an auth URL via either --os-auth-url or env[OS_AUTH_URL]

    直接使用devstack在ubuntu14.04单个节点的建筑openstack 使用keystone查询租户和用户始终报告时,这个错误! 主要看下这些配置是否正确.我们将能够解决这个问题 opens ...

  3. jenkins 集成钉钉机器人

    最早做Jenkins发布完成以后通过邮件发送信息通知相关的联系人,发现邮件会受限于大家接收的设置,导致不能及时的看到相关的发布内容,公司使用钉钉做为公司内部的通讯工具,所以想通过Jenkins发布完成 ...

  4. MVC在VIEW中动态控制htmlAttributes的方法

    @{ IDictionary<string, object> dic = new Dictionary<string, object>(); dic.Add("cla ...

  5. python web -- flask

    Flask是一个简洁的 Python_web 框架. 零. virtualenv 虚拟环境配置. $ easy_install pip $ pip install virtualenv $ virtu ...

  6. Android底部导航栏&lpar;可滑动&rpar;----TabLayout&plus;viewPager

    [TabLayout] ①TabLayout是选项卡,在屏幕空间有限的情况下,对不同的空间进行分组.属于android support design,更多的用于新闻上,如果放在底部也可做底部导航栏 ② ...

  7. JAVA003-变量、数据类型

    一.变量的三个元素:变量名(房间名字).变量类型(房间的类型).变量值(入住的人). 二.变量的命名规则: 1.驼峰法     2.尽量简单,见名知意     3.长度没有限制     4.满足标志符 ...

  8. CentOS RabbitMQ 高可用&lpar;Mirrored&rpar;

    原文:https://www.sunjianhua.cn/archives/centos-rabbitmq.html 一.RabbitMQ 单节点 1.1.Windows 版安装配置 1.1.1 安装 ...

  9. 《DSP using MATLAB》Problem 3&period;17

    用差分方程两边进行z变换,再变量带换得到频率响应函数(或转移函数,即LTI系统脉冲响应的DTFT). 代码: %% ------------------------------------------ ...

  10. wordpress编辑器选择ckeditor、ckfinder

    CKEditor for WordPress 搜索安装 上传功能需要ckfinder 下载 CKFinder for PHP: http://ckfinder.com/download 上传ckfin ...