14.3.1 ProxySQL安装与版本选择
ProxySQL安装与版本选择#
ProxySQL的版本选择需兼顾后端MySQL版本、系统发行版和业务特性。生产环境优先稳定版(Stable/LTS),测试环境可使用最新稳定版以验证新功能。以下给出架构草图、安装路径与可执行示例。
原理草图:ProxySQL在访问链路中的位置
版本选择建议(带示例判断)
- 稳定性优先:生产选择官方稳定分支。
- 功能匹配:若需要细粒度路由、统计表增强,选包含功能的较新稳定版。
- 平台支持:优先使用发行版官方包,便于升级回滚。
- 兼容性验证:与MySQL认证方式、SQL解析兼容性先行验证。
示例:查看可用版本(Ubuntu/Debian)
# 更新软件索引
sudo apt update
# 查看ProxySQL可用版本
apt-cache policy proxysql
# 预期输出包含 Candidate 与版本号,例如:
# Candidate: 2.5.5
安装方式对比与示例#
方式1:官方仓库安装(推荐)#
Ubuntu/Debian 示例
# 安装依赖与官方仓库
sudo apt update
sudo apt install -y wget gnupg lsb-release
# 添加ProxySQL官方仓库(以Ubuntu 20.04为例)
wget -qO - https://repo.proxysql.com/ProxySQL/repo_pub_key | sudo apt-key add -
echo "deb https://repo.proxysql.com/ProxySQL/proxysql-2.5.x/$(lsb_release -sc)/ ./" \
| sudo tee /etc/apt/sources.list.d/proxysql.list
# 安装
sudo apt update
sudo apt install -y proxysql
# 启动与开机自启
sudo systemctl enable --now proxysql
# 校验版本
proxysql --version
RHEL/CentOS 示例
# 添加ProxySQL仓库
sudo tee /etc/yum.repos.d/proxysql.repo <<'EOF'
[proxysql]
name=ProxySQL YUM repository
baseurl=https://repo.proxysql.com/ProxySQL/proxysql-2.5.x/centos/7
gpgcheck=0
enabled=1
EOF
# 安装与启动
sudo yum install -y proxysql
sudo systemctl enable --now proxysql
# 校验
proxysql --version
方式2:离线包安装(适合内网)#
# 将下载好的包拷贝到服务器,例如:
# proxysql_2.5.5-debian10_amd64.deb
sudo dpkg -i /tmp/proxysql_2.5.5-debian10_amd64.deb
sudo systemctl enable --now proxysql
方式3:源码编译(不推荐,示例流程)#
# 仅在特殊平台或定制需求下使用
sudo apt install -y git build-essential cmake libssl-dev
git clone https://github.com/sysown/proxysql.git
cd proxysql
git checkout v2.5.5
make
sudo make install
环境准备与关键参数#
- 端口规划:管理端口6032、数据端口6033。
- 资源预留:建议至少2核/4G内存,用于连接池与规则匹配。
- 后端MySQL账号:准备监控用户与应用用户,最小权限原则。
示例:端口占用检查
# 确认6032/6033未被占用
sudo ss -lntp | egrep '6032|6033' || echo "端口空闲"
安装完成后的快速校验#
# 1) 服务状态
sudo systemctl status proxysql --no-pager
# 2) 端口监听
sudo ss -lntp | egrep '6032|6033'
# 3) 管理端口登录(默认账户admin/admin)
mysql -uadmin -padmin -h127.0.0.1 -P6032 -e "SELECT @@version;"
# 预期输出含ProxySQL版本号
常见排错示例#
问题1:管理端口无法连接
# 检查服务状态
sudo systemctl status proxysql --no-pager
# 查看日志
sudo tail -n 50 /var/log/proxysql.log
# 处理方式:若服务未启动,尝试重启
sudo systemctl restart proxysql
问题2:端口占用导致启动失败
# 查找占用6032/6033的进程
sudo ss -lntp | egrep '6032|6033'
# 停止冲突服务或调整ProxySQL端口后重启
练习#
- 通过官方仓库安装ProxySQL并输出版本号。
- 修改系统中的一个闲置端口为6034,验证端口检查命令效果。
- 模拟端口占用(用nc监听6032),观察ProxySQL启动失败日志。