ProxySQL 项目教程
1. 项目的目录结构及介绍
ProxySQL 是一个高性能的 MySQL 代理,其 GitHub 仓库的目录结构如下:
proxysql/
├── admin/
├── bin/
├── cmake/
├── etc/
├── lib/
├── mysql-binlog-dump/
├── mysql-binlog-thread/
├── mysql-client-reply/
├── mysql-connection-manager/
├── mysql-packet-checksum/
├── mysql-protocol/
├── mysql-query-executor/
├── mysql-query-normalizer/
├── mysql-query-parser/
├── mysql-query-rewriter/
├── mysql-server-reply/
├── mysql-statistics/
├── mysql-thread/
├── proxysql/
├── scripts/
├── src/
├── tests/
├── utils/
├── CMakeLists.txt
├── LICENSE
├── README.md
└── VERSION
主要目录介绍:
- admin/: 包含管理接口的相关文件。
- bin/: 包含编译后的可执行文件。
- etc/: 包含配置文件模板。
- lib/: 包含项目依赖的库文件。
- src/: 包含项目的源代码。
- scripts/: 包含一些脚本文件,如安装和升级脚本。
- tests/: 包含测试文件。
2. 项目的启动文件介绍
ProxySQL 的启动文件位于 bin/
目录下,主要文件是 proxysql
。这个文件是 ProxySQL 的主可执行文件,用于启动代理服务。
./bin/proxysql --initial
使用 --initial
参数可以在首次启动时初始化配置。
3. 项目的配置文件介绍
ProxySQL 的配置文件位于 etc/
目录下,主要文件是 proxysql.cnf
。这个文件包含了 ProxySQL 的所有配置选项。
配置文件示例:
datadir="/var/lib/proxysql"
admin_variables=
{
admin_credentials="admin:admin"
mysql_ifaces="0.0.0.0:6032"
}
mysql_variables=
{
threads=4
max_connections=2048
default_query_delay=0
default_query_timeout=36000000
have_compress=true
poll_timeout=2000
interfaces="0.0.0.0:6033"
default_schema="information_schema"
stacksize=1048576
server_version="5.5.30"
connect_timeout_server=3000
monitor_username="monitor"
monitor_password="monitor"
monitor_history=600000
monitor_connect_interval=600000
monitor_ping_interval=10000
monitor_read_only_interval=1500
monitor_read_only_timeout=500
ping_interval_server_msec=120000
ping_timeout_server=500
commands_stats=true
sessions_sort=true
connect_retries_on_failure=10
}
主要配置项介绍:
- admin_variables: 管理接口的配置,包括管理员用户名和密码,以及监听地址。
- mysql_variables: MySQL 相关的配置,包括线程数、最大连接数、查询延迟和超时等。
通过修改 proxysql.cnf
文件,可以调整 ProxySQL 的行为和性能。