Hi! 👋 We are doing a big documentation refresh. Help us improve — what's missing or could be better? Let us know! Simply send an email or start a conversation in Google Groups!

Download and Install ProxySQL

ProxySQL offers packaged releases for multiple operating system distributions. Install packages directly from the GitHub Releases Page or via RPM/DEB repositories.

Info

The current version of ProxySQL is .

Supported Operating Systems

DistributionVersions
RedHat & CentOS10, 9, 8*, 7*
Amazon Linux2023, 2*
Debian13, 12, 11*, 10*
Ubuntu24, 22, 20*, 18*, 16*
Almalinux10, 9, 8
OpenSUSE Leap15, 16

* ProxySQL v2.7.x and older releases only.

Docker and Kubernetes deployment options are available via DockerHub and the ProxySQL Kubernetes repository.

Currently Maintained Releases

  • ProxySQL Core 3.0.x Series (GA)
  • ProxySQL Core 2.7.x Series (GA)
  • ProxySQL Core 2.6.x Series (GA)
  • ProxySQL Core 2.5.x Series (GA)
  • ProxySQL Core 2.4.x Series (GA)
  • ProxySQL Core 2.3.x Series (GA)
  • ProxySQL Core 2.2.x Series (GA)
  • ProxySQL Binlog Reader 2.x Series (GA)

Installing Packages Directly

Download from the GitHub Release Page and install with your package manager:

wget https://github.com/sysown/proxysql/releases/download/vPROXYSQL_VERSION/proxysql_PROXYSQL_VERSION-ubuntu22_amd64.deb
dpkg -i proxysql_PROXYSQL_VERSION-ubuntu22_amd64.deb

Installing a Generic Linux Tarball

Generic release tarballs are useful when no matching RPM or DEB is available. They are built on AlmaLinux 9 and target Linux systems with glibc 2.34 or newer and OpenSSL 3. Release assets use this version-independent naming scheme:

proxysql-<version>-linux-amd64.tar.gz
proxysql-<version>-linux-arm64.tar.gz

Unlike a distribution package, a tarball does not create the service account, install files into system paths, or register the service. The operator owns those steps and the upgrade/rollback procedure.

Select the Architecture and Download

Choose amd64 for x86_64 and arm64 for aarch64/arm64. Set the release version explicitly rather than copying a version from this page:

PROXYSQL_VERSION='<release-version>'

case "$(uname -m)" in
  x86_64)         PROXYSQL_ARCH=amd64 ;;
  aarch64|arm64)  PROXYSQL_ARCH=arm64 ;;
  *) echo "Unsupported architecture: $(uname -m)" >&2; exit 1 ;;
esac

PROXYSQL_ARCHIVE="proxysql-${PROXYSQL_VERSION}-linux-${PROXYSQL_ARCH}.tar.gz"
PROXYSQL_RELEASE_URL="https://github.com/sysown/proxysql/releases/download/v${PROXYSQL_VERSION}"

curl -fLO "${PROXYSQL_RELEASE_URL}/${PROXYSQL_ARCHIVE}"
curl -fLO "${PROXYSQL_RELEASE_URL}/${PROXYSQL_ARCHIVE}.sha256"
curl -fLO "${PROXYSQL_RELEASE_URL}/${PROXYSQL_ARCHIVE}.asc"

Verify the Signature and Checksum

Import the ProxySQL release signing key from a separately authenticated source and verify its fingerprint under your organization’s trust policy. Then verify the detached signature and the published checksum before extracting anything:

gpg --verify "${PROXYSQL_ARCHIVE}.asc" "${PROXYSQL_ARCHIVE}"
sha256sum -c "${PROXYSQL_ARCHIVE}.sha256"

Both commands must succeed. A checksum detects a damaged download; the signature, together with an independently verified signing key, authenticates the artifact.

Extract and Inspect the Layout

tar tzf "${PROXYSQL_ARCHIVE}"
tar xzf "${PROXYSQL_ARCHIVE}"
cd "proxysql-${PROXYSQL_VERSION}-linux-${PROXYSQL_ARCH}"

The archive contains:

  • bin/proxysql — the ProxySQL executable;
  • etc/proxysql.cnf and etc/logrotate.d/proxysql — sample configuration and log rotation;
  • systemd/system/proxysql.service and proxysql-initial.service — service units;
  • share/proxysql/tools/ — operational helper scripts; and
  • lib/proxysql/ — runtime plugins when included by the release tier, notably in 4.0 builds.

Install the Service and User

The bundled systemd unit expects /usr/bin/proxysql, /etc/proxysql.cnf, a proxysql user and group, and a writable /var/lib/proxysql. The following is a starting point for a systemd host; adapt the service-account commands and nologin path to the distribution:

sudo groupadd --system proxysql
sudo useradd --system --gid proxysql --home-dir /var/lib/proxysql \
  --shell /usr/sbin/nologin proxysql
sudo install -d -o proxysql -g proxysql -m 0750 /var/lib/proxysql
sudo install -o root -g root -m 0755 bin/proxysql /usr/bin/proxysql
sudo install -o root -g proxysql -m 0640 etc/proxysql.cnf /etc/proxysql.cnf
sudo install -o root -g root -m 0644 systemd/system/proxysql.service \
  systemd/system/proxysql-initial.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable proxysql

If lib/proxysql/ is present, install its contents under /usr/lib/proxysql/ and configure only the plugins you intend to load. Before the first start, edit /etc/proxysql.cnf, replace the sample Admin credentials, restrict admin_variables.mysql_ifaces to trusted interfaces, and review every other listener. Install log rotation as appropriate and confirm file ownership. Start the service only after those security settings are in place:

sudo systemctl start proxysql

Use proxysql-initial.service only when you intentionally want --initial behavior.

Upgrade and Roll Back

Before an upgrade, record the current version and test the new tarball with the same libc/OpenSSL baseline and configuration in a staging environment. During the change window, stop ProxySQL before making a raw-copy backup of the executable, configuration, plugin directory, and /var/lib/proxysql/proxysql.db. The database backup contains credentials and other sensitive configuration; restrict its permissions and protect its storage and transport. After the stopped-state backup completes, install the matching executable and plugins, then start and verify the service before removing the backup.

For rollback, stop ProxySQL and restore the previous executable and matching plugins. If the newer release changed the on-disk schema or configuration, restore its matching proxysql.db backup while ProxySQL is stopped; do not assume a database written by a newer version is backward compatible.

Distribution packages remain preferable when available: the RPM/DEB lifecycle handles dependency metadata, standard paths, service-account creation, systemd integration, package signatures, upgrades, and removal. Generic tarballs provide portability, but those responsibilities remain with the administrator.

Installing from Repositories

Ubuntu / Debian

apt-get install -y --no-install-recommends lsb-release wget apt-transport-https ca-certificates gnupg

# Add repository key
wget -nv -O /etc/apt/trusted.gpg.d/proxysql-3.0.x-keyring.gpg \
  'https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/repo_pub_key.gpg'

# Add repository
echo deb https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/$(lsb_release -sc)/ ./ \
  | tee /etc/apt/sources.list.d/proxysql.list

# Install
apt-get update
apt-get install proxysql

To install a specific version:

apt-get install proxysql=PROXYSQL_VERSION-ubuntu22

For older series replace proxysql-3.0.x in the repository URL with proxysql-2.7.x, proxysql-2.6.x, etc.

RedHat / CentOS

cat <<EOF | tee /etc/yum.repos.d/proxysql.repo
[proxysql_repo]
name=ProxySQL repository
baseurl=https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/centos/\$releasever
gpgcheck=1
gpgkey=https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/repo_pub_key
EOF

yum install proxysql

Amazon Linux

Use CentOS packages (CentOS 9 for Amazon Linux 2023; CentOS 7 for Amazon Linux 2):

cat <<EOF | tee /etc/yum.repos.d/proxysql.repo
[proxysql_repo]
name=ProxySQL repository
baseurl=https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/centos/9
gpgcheck=1
gpgkey=https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/repo_pub_key
EOF

yum install proxysql

Almalinux

cat <<EOF | tee /etc/yum.repos.d/proxysql.repo
[proxysql_repo]
name=ProxySQL repository
baseurl=https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/almalinux/\$releasever
gpgcheck=1
gpgkey=https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/repo_pub_key
EOF

yum install proxysql

OpenSUSE Leap

zypper addrepo -g -n 'ProxySQL repository' \
  'https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/opensuse/$releasever_major' proxysql

zypper --gpg-auto-import-keys install proxysql

Running ProxySQL with Docker

Configuration File

Create a basic proxysql.cnf for development and testing:

datadir="/var/lib/proxysql"

admin_variables=
{
    admin_credentials="admin:admin;radmin:radmin"
    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=60000
    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
}

Run the Container

docker run -p 16032:6032 -p 16033:6033 -p 16070:6070 \
  -d -v /path/to/proxysql.cnf:/etc/proxysql.cnf \
  proxysql/proxysql
Note

A second pair of admin credentials (e.g. radmin:radmin) is required to connect from outside the container.

For Kubernetes, sample Helm charts are available in the ProxySQL Kubernetes GitHub Repository.

Next Steps

See First Steps After Installing for post-installation guidance.