proxysql

2024-02-20 22:52
文章标签 proxysql

本文主要是介绍proxysql,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里是引用

mysql 安装

mysql-3307

mysql -P  3307  -u root   -proot  -h 10.211.55.8
create database db1;
CREATE TABLE db1.tab_20240102 (id INT PRIMARY KEY,name VARCHAR(50),email VARCHAR(50),age INT
);
CREATE TABLE db1.tab_20240103 (id INT PRIMARY KEY,name VARCHAR(50),email VARCHAR(50),age INT
);
INSERT INTO db1.tab_20240103 (id, name, email, age) VALUES (1, 'Alice', 'alice@example.com', 30);

mysql-3308

create database db1;
CREATE TABLE db1.tab_20240102 (id INT PRIMARY KEY,name VARCHAR(50),email VARCHAR(50),age INT
);
INSERT INTO db1.tab_20240102 (id, name, email, age) VALUES (1, 'Alice', 'alice@example.com', 30);
安装 
yum -y install proxysql-2.5.5-1-centos7.x86_64.rpm启动
systemctl  status proxysql登陆
mysql -uadmin -padmin -P6032 -h127.0.0.1

创建两个主机组

insert into mysql_servers(hostgroup_id,hostname,port) values(10,'127.0.0.1',3307);
insert into mysql_servers(hostgroup_id,hostname,port) values(20,'127.0.0.1',3308);
LOAD MYSQL QUERY RULES TO RUNTIME;
SAVE MYSQL QUERY RULES TO DISK;

创建路由规则

INSERT INTO mysql_query_rules (active, match_digest, destination_hostgroup, apply) VALUES (1, '^SELECT \* FROM db1\.tab_20240102', 20, 1);
LOAD MYSQL QUERY RULES TO RUNTIME;
SAVE MYSQL QUERY RULES TO DISK;
INSERT INTO mysql_query_rules (active, match_digest, destination_hostgroup, apply) VALUES (1, '^(INSERT|UPDATE|DELETE) .* FROM db1\.(?!tab_20240102)', 10, 1);
LOAD MYSQL QUERY RULES TO RUNTIME;
SAVE MYSQL QUERY RULES TO DISK;

设置 monitor 用户

set mysql-monitor_username='root';
set mysql-monitor_password='root';
LOAD MYSQL VARIABLES TO RUNTIME;
SAVE MYSQL VARIABLES TO DISK;

创建应用用户

INSERT INTO mysql_users(username, password, default_hostgroup, active) VALUES ('my_user', 'password123', 10, 1);INSERT INTO mysql_users(username, password, default_hostgroup, active) VALUES ('root', 'root', 10, 1);LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;

测试连接

mysql -P  6033  -u my_user   -ppassword123  -h 10.202.11.46 
mysql -P  6033  -u root   -proot  -h 10.202.11.46

查看日志

tail -f /var/lib/proxysql/proxysql.log

测试路由规则

mysql -P  6033  -u root   -proot  -h 10.202.11.46mysql> select * from db1.tab_20240102;
+----+-------+-------------------+------+
| id | name  | email             | age  |
+----+-------+-------------------+------+
|  1 | Alice | alice@example.com |   30 |
+----+-------+-------------------+------+
1 row in set (0.03 sec)

被路由到了的 mysql-3308 只有3308 有数据

登陆后台查看匹配信息

mysql -uadmin -padmin -P6032 -h127.0.0.1mysql> SELECT * FROM stats_mysql_query_rules;
+---------+------+
| rule_id | hits |
+---------+------+
| 2       | 4    |
| 3       | 0    |
+---------+------+

查看路由规则

mysql> SELECT * FROM mysql_query_rules\G
*************************** 1. row ***************************rule_id: 2active: 1username: NULLschemaname: NULLflagIN: 0client_addr: NULLproxy_addr: NULLproxy_port: NULLdigest: NULLmatch_digest: ^SELECT \* FROM db1\.tab_20240102match_pattern: NULLnegate_match_pattern: 0re_modifiers: CASELESSflagOUT: NULLreplace_pattern: NULL
destination_hostgroup: 20cache_ttl: NULLcache_empty_result: NULLcache_timeout: NULLreconnect: NULLtimeout: NULLretries: NULLdelay: NULLnext_query_flagIN: NULLmirror_flagOUT: NULLmirror_hostgroup: NULLerror_msg: NULLOK_msg: NULLsticky_conn: NULLmultiplex: NULLgtid_from_hostgroup: NULLlog: NULLapply: 1attributes: comment: NULL
*************************** 2. row ***************************rule_id: 3active: 1username: NULLschemaname: NULLflagIN: 0client_addr: NULLproxy_addr: NULLproxy_port: NULLdigest: NULLmatch_digest: ^(INSERT|UPDATE|DELETE) .* FROM db1\.(?!tab_20240102)match_pattern: NULLnegate_match_pattern: 0re_modifiers: CASELESSflagOUT: NULLreplace_pattern: NULL
destination_hostgroup: 10cache_ttl: NULLcache_empty_result: NULLcache_timeout: NULLreconnect: NULLtimeout: NULLretries: NULLdelay: NULLnext_query_flagIN: NULLmirror_flagOUT: NULLmirror_hostgroup: NULLerror_msg: NULLOK_msg: NULLsticky_conn: NULLmultiplex: NULLgtid_from_hostgroup: NULLlog: NULLapply: 1attributes: comment: NULL
2 rows in set (0.00 sec)mysql> 
```修改应用连接端口为3306
```
UPDATE global_variables SET variable_value='3306' WHERE variable_name='mysql-interfaces';LOAD MYSQL VARIABLES TO RUNTIME;
SAVE MYSQL VARIABLES TO DISK;
```

这篇关于proxysql的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/729784

相关文章

ProxySQL 读写分离配置

ProxySQL 是一个高性能、高可用的 MySQL 代理软件,旨在提升 MySQL 数据库的可扩展性和性能。它可以在应用程序和 MySQL 服务器之间充当中间层,提供强大的路由、负载均衡和查询优化功能。 ProxySQL 的主要功能: 查询路由: ProxySQL 可以根据用户定义的规则,将 SQL 查询路由到不同的 MySQL 服务器或集群。例如,可以将写操作路由到主服务器,

ProxySQL + MySQL MGR 实现读写分离实战

文章目录 前言1、ProxySQL 介绍1.1、ProxySQL 如何工作1.2、ProxySQL 工作原理 2、ProxySQL 安装与读写分离实战2.1、ProxySQL 安装2.2、读写分离配置2.3、读写分离实战2.4、SpringBoot 整合 前言 该文章实践之前,需要搭建MySQL MGR集群,关于 MySQL MGR 集群搭建,请参考该文章: 万字详解 MySQ

海山数据库(He3DB)代理ProxySQL使用详解:(二)功能实测

读写分离实测 ProxySQL官方demo演示了三种读写分离的方式:使用不同的端口进行读写分离、使用正则表达式进行通用的读写分离、使用正则和digest进行更智能的读写分离。最后一种是针对特定业务进行的优化调整,也可将其归结为第二种方式,下边分别进行测试。 基于端口的读写分离 环境准备 MySQL里创建访问用户,监控用户 SQL #创建监控账号 create user monito

proxySQL 安装与配置

# 官网下载 https://www.proxysql.com/documentation/installing-proxysql/ > cd ~/Downloads # 使用 dpkg 命令来安装下载的 .deb 包 > sudo dpkg -i proxysql_2.6.2-debian12_amd64.deb # 如果 dpkg 命令报告缺少依赖关系或安装过程中遇到问题,可以尝试运行以

proxysql 2.6部署代理MGR集群读写分离

官方文档 https://proxysql.com/documentation/ProxySQL-Configuration/ 下载安装proxysql https://github.com/sysown/proxysql/releases/download/v2.6.0/proxysql-2.6.0-1-centos7.x86_64.rpmyum -y localinstall proxy

安装ProxySQL,教程及安装链接(网盘自提)

一、网盘下载,本地直传 我网盘分享的是proxysql-2.5.5-1-centos8.x86_64.rpm,yum或者dnf直接安装就行 提取码:rhelhttps://pan.baidu.com/s/1nmx8-h8JEhrxQE3jsB7YQw 官方安装地址 官网下载地址https://repo.proxysql.com/ProxySQL/ 二、yum源 # 配置yum源ca

proxysql实现mysql主从的读写分离

文章目录 安装proxysql proxysql yum install proxysql-1.4.16-1-centos7.x86_64.rpm mariadb -yservice proxysql startmysql -uadmin -padmin -P6032 -h127.0.0.1MySQL [(none)]> select * from sqlite_mas

proxysql读写分离组件部署

一、前言       在mysql一主两从架构的前提下,引入读写分离组件,可以极大的提高mysql性能,proxysql可以在高可用mysql架构发生主从故障时,进行自动的主从读写节点切换,即当mysql其他从节点当选新的主节点时,proxysql会自动识别,6033端口为mysql命令调用端口,6032端口为proxysql的管理端口 二、部署      需要先部署mysql主从架构或者m

proxysql读写分离组件部署

一、前言       在mysql一主两从架构的前提下,引入读写分离组件,可以极大的提高mysql性能,proxysql可以在高可用mysql架构发生主从故障时,进行自动的主从读写节点切换,即当mysql其他从节点当选新的主节点时,proxysql会自动识别,6033端口为mysql命令调用端口,6032端口为proxysql的管理端口 二、部署      需要先部署mysql主从架构或者m

Proxysql读写分离

Proxysql读写分离 主从配置 # /etc/my.cnf主节点[mysqld]log-bin=mysql-binserver-id=1从节点[mysqld]server-id=2read_only=1 #初始化以及创建主从复制用户mysql> alter user 'root'@'localhost' identified with mysql_native_pas