MySQL 高性能中间件 ProxySQL 初步了解和安装

ProxySQL的功能和特性这里不记录,网上好文章很多,这里记录的只适用于我个人查阅的资料。

ProxySQL多层配置系统介绍:

MySQL 高性能中间件 ProxySQL 初步了解和安装
  • RUNTIME:当前生效的配置,proxysql 运行中线程处理请求时使用的配置文件(数据),无法直接修改RUNTIME的配置内容,需要从下层配置应用到runtime上。
  • MEMORY:(main表)提供用户动态修改配置数据,通过 MySQL 兼容接口查询 proxysql 的配置表或库。
  • DISK:是一个在磁盘上的 SQLite3 数据库,默认位置为 $(DATADIR)/proxysql.db。重启时,没有持久化到磁盘的内存配置会丢失,因此有必要将内存中的配置持久化到DISK
  • CONFIG:就是 proxysql.cnf,第一次启动时读取的配置文件,第一次启动之后以后不在用到。

官方网址:

安装

使用 yum 安装方式:

cat <<EOF | tee /etc/yum.repos.d/proxysql.repo
<code><strong>[proxysql_repo]</strong>
name= ProxySQL
baseurl=http://repo.proxysql.com/ProxySQL/proxysql-2.0.x/centos/$releasever
gpgcheck=1
gpgkey=http://repo.proxysql.com/ProxySQL/repo_pub_key</code>
EOF
yum clean all
yum makecache
yum install proxysql -y
# 启动
chkconfig --add proxysql
service proxysql start

proxysql的目录结构:

  • 数据目录:/var/lib/proxysql/
                     proxysql.db:配置数据存储文件,后端数据库的账号、密码、路由等存储在这个数据库里面。
                     proxysql.log:此文件是日志文件。
                     proxysql.pid:此文件是是进程pid文件。
  • 配置文件目录:/etc/proxysql.cnf,是一些静态配置项,用来配置一些启动选项。此配置文件只在第一次启动的时候读取进行初始化,后面只读取proxysql.db文件。
  • 启动脚本:/etc/init.d/proxysql

proxysql 的默认管理端口是 6032,客户端服务端口是 6033。默认的用户名密码都是 admin,可以在配置文件里看到。

使用MySQL客户端连接管理:

mysql -uadmin -padmin -h127.0.0.1 -P 6032

ProxySQL默认有五个数据库:

mysql> show databases;
+-----+---------------+-------------------------------------+
| seq | name          | file                                |
+-----+---------------+-------------------------------------+
| 0   | main          |                                     |
| 2   | disk          | /var/lib/proxysql/proxysql.db       |
| 3   | stats         |                                     |
| 4   | monitor       |                                     |
| 5   | stats_history | /var/lib/proxysql/proxysql_stats.db |
+-----+---------------+-------------------------------------+

对每个库的功能介绍如下:

  • main库:内存配置数据库,表里存放后端 db 实例、用户验证、路由规则等信息。表名以runtime_开头的表示 proxysql 当前运行的配置内容,不能通过 dml 语句修改,只能修改对应的不以runtime_ 开头的(在内存)里的表,然后LOAD使其生效, SAVE使其存到硬盘以供下次重启加载。
  • disk库:是持久化到硬盘的配置库,对应/var/lib/proxysql/proxysql.db文件,也就是 sqlite 的数据文件。
  • stats库:是 proxysql 运行抓取的统计信息库,包括到后端各命令的执行次数、流量、processlist、查询种类汇总/执行时间等等。
  • monitor库:存储 monitor 模块收集的信息,主要是对后端 db 的健康、延迟检查。

ProxySQL配置文件的修改流程一般是:

1、第一次启动时候,修改必要的CONFIG FILE配置。
2、以后配置修改MEMORY中的表,然后加载到RUNTIME并保存到DISK持久化。

修改配置的命令(以main.mysql_users为例):

-- 将修改后的配置(memory层)加载为生效配置。
LOAD MYSQL USERS TO RUNTIME           -- 让配置生效(常用)
LOAD MYSQL USERS FROM MEMORY
-- 将生效配置数据复制到 memory 中
SAVE MYSQL USERS TO MEMORY
SAVE MYSQL USERS FROM RUNTIME
-- 将磁盘中持久化的配置复制到 memory 中
LOAD MYSQL USERS TO MEMORY
LOAD MYSQL USERS FROM DISK
-- 将 memoery 中的配置保存到磁盘数据文件
SAVE MYSQL USERS TO DISK               -- 保存配置(常用)
SAVE MYSQL USERS FROM MEMORY
-- 将配置文件中的配置加载到 memeory 中
LOAD MYSQL USERS FROM CONFIG
免责声明:
1.本站所有内容只做学习和交流使用。 版权归原作者所有。
2.保证站内提供的所有可下载源码资源(软件等)都是按“原样”提供,本站未做过任何改动;但本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。
3.本站部分内容均收集于网络!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。请联系站长邮箱:admin#ibian.online(#换成@)处理!

给TA打赏
共{{data.count}}人
人已打赏
中间件服务器

开源监控方案 Prometheus+Grafana 安装配置

2025-2-25 9:27:09

数据库

MySQL 主主复制 高可用负载均衡集群

2025-2-25 9:52:45

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索