Proxysql 介绍
发布时间:2023-09-07 12:41:56 所属栏目:MySql教程 来源:
导读:ProxySQL 是基于 MysqL 的一款开源的中间件产品,是一个轻量级的 MysqL 代理层,可以实现读写分离,故障切换,集群部署,监控后端节点,可缓存查询结果,支持 Query 路由功能,支持动态指定某个sql 进行缓存,支持动
ProxySQL 是基于 MysqL 的一款开源的中间件产品,是一个轻量级的 MysqL 代理层,可以实现读写分离,故障切换,集群部署,监控后端节点,可缓存查询结果,支持 Query 路由功能,支持动态指定某个sql 进行缓存,支持动态加载。 1. Proxysql 部署 下面从实战的角度一步步搭建 Proxysql 环境。 1.1 基本环境 Proxysql-1 Proxysql-2 Proxysql-3 MysqL版本 proxysql-2.0.5 proxysql-2.0.5 proxysql-2.0.5 操作系统 CentOS 7.8 CentOS 7.8 CentOS 7.8 服务器IP 192.168.0.1 192.168.0.2 192.168.0.3 端口 管理端口-6032 服务端口-6033 管理端口-6032 服务端口-6033 管理端口-6032 服务端口-6033 服务器配置 2c4g 2c4g 2c4g 1.2 安装配置 安装 proxysql: --新安装 rpm -ivh proxysql-2.0.5-1-centos7.x86_64.rpm --升级 rpm -Uvh proxysql-2.0.5-1-centos7.x86_64.rpm --删除 rpm -qa | grep proxysql rpm -e proxysql-2.0.5-1-centos7.x86_64 --启动proxysql service proxysql start --检查版本 proxysql –version --proxysql路径 /var/lib/proxysql 配置后端 MysqL 机器: 登入 Proxysql,把 MysqL 主从的信息添加进去。将主库 master 也就是做写入的节点放到 HG 100中,salve 节点做读放到 HG 1000。 --配置后端MysqL机器(在Proxysql中执行) --登录proxysql管理端口 MysqL -uadmin -padmin -h127. -P6032; insert into MysqL_servers(hostgroup_id,hostname,port,weight,max_connections,max_replication_lag,comment) values(,'192.168.0.1',,,,,'MysqL-1'), (,'192.168.0.1',,,,,'MysqL-1'), (,'192.168.0.2',,,,,'MysqL-2'), (,'192.168.0.3',,,,,'MysqL-3'); select * from MysqL_servers; -- 持久化(在Proxysql中执行) save MysqL servers to disk; -- 加载到线上(在Proxysql中执行) load MysqL servers to runtime; 配置后端 MysqL 用户: 这个用户需要先在后端 MysqL 里真实存在,一个是监控账号,一个是程序账号: --监控账号(在MysqL中执行) GRANT USAGE ON *.* TO 'monitor_user'@'.%' IDENTIFIED BY ''; --程序账号(在MysqL中执行) GRANT SELECT, INSERT, UPDATE, DELETE ON center.* TO 'app_user'@'.%' identified by ''; 在每个 Proxysql 中执行,配置后端 MysqL 监控用户: --登录proxysql管理端口 MysqL -uadmin -padmin -h127. -P6032; UPDATE global_variables SET variable_value='monitor_user' WHERE variable_name='MysqL-monitor_username'; UPDATE global_variables SET variable_value='123456' WHERE variable_name='MysqL-monitor_password'; --加载和持久化 save MysqL variables to disk; load MysqL variables to runtime; --配置后端MysqL程序用户(在Proxysql中执行) insert into MysqL_users(username,password,active,default_hostgroup,transaction_persistent, max_connections) values('app_user','123456',,,,) -- 持久化(在Proxysql中执行) save MysqL users to disk; -- 加载到线上(在Proxysql中执行) load MysqL users to runtime; Proxysql 是非常轻量级的一款 MysqL 中间件,对 cpu 内存等服务器资源的消耗基本小于 5%,而且功能强大,不仅仅是纯粹的 MysqL 读写分离。掌握 Proxysql 这门技术,也变得越来越重要,是DBA面试的一个加分项。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |