ProxySQL Admin Configuration

ProxySQL AdminProxySQL Admin (proxysql-admin) is a powerful tool for configuring Percona XtraDB Cluster nodes into ProxySQL. The proxysql-admin tool comes with the ProxySQL package from Percona apt/yum repositories.

ProxySQL 1.3.2-1 is now available from the Percona repositories. This release is based on ProxySQL v1.3.2a and introduces the following new changes:

Installing on Red Hat or CentOS

If you are running an RPM-based Linux distribution, use the yum package manager to install ProxySQL and proxysql-admin from the official Percona software repository.

First, if your system does not already have the Percona’s yum repository configured, please run the following command:

Next, install the proxysql/proxysql-admin package:

Installing on Debian or Ubuntu

If you are running a DEB-based Linux distribution, use the apt package manager to install ProxySQL and proxysql-admin from the official Percona software repository.

First, if your system does not already have the Percona’s apt repository configured, please fetch the repository package:

Next, install the repository package:

Then update the local apt cache:

Finally, install the proxysql/proxysql-admin package:


  • ProxySQL and Percona XtraDB Cluster should be up and running.
  • For security purposes, please make sure to change the default user settings in the ProxySQL configuration file. It is recommended that you use config-file to run the proxysql-admin script. Default –config-file location is /etc/proxysql-admin.cnf.

This script will accept two different options to configure Percona XtraDB Cluster nodes:

1) −−enable

This option configures Percona XtraDB Cluster nodes into the ProxySQL database, and add two cluster monitoring scripts into the ProxySQL scheduler table for checking the cluster status.

_scheduler script info:

  • proxysql_node_monitor: checks cluster node membership, and re-configures ProxySQL if cluster membership changes occur
  • proxysql_galera_checker: checks desynced nodes, and temporarily deactivates them. It will also add two new users into the Percona XtraDB Cluster with the USAGE privilege. One monitors cluster nodes through ProxySQL, and the other connects to Cluster node via the ProxySQL console. Please make sure to use super user credentials from Percona XtraDB Cluster to setup the default users.

2. −−disable

This option removes Percona XtraDB Cluster nodes from ProxySQL and stops the ProxySQL monitoring daemon.

Extra options

i) −−mode

This option sets up read/write mode for Percona XtraDB Cluster nodes in the ProxySQL database, based on the hostgroup. For now, the only supported modes are loadbal and singlewrite. singlewrite is the default mode, and it accepts writes only on one single node (and this node can be provided either interactively or by using the –write-node to specify the hostname and the port number for the one single write node). All other remaining nodes will be read-only and accept only read statements. The mode loadbal, on the other hand, is a load balanced set of evenly weighted read/write nodes.

singlewrite mode setup:

loadbal mode setup:

ii) −−node-check-interval

This option configures the interval for monitoring via the proxysql_galera_checker script (in milliseconds):

iii) −−adduser

This option aids with adding the Percona XtraDB Cluster application user to the ProxySQL database:

iv) −−test-run

This option sets up a test/dummy proxysql configuration:

We hope you enjoy ProxySQL Admin!

Share this post

Comments (7)

  • Tomislav

    It seems confusing to reference proxysql-admin as a package since it’s a script inside the proxysql package from Percona repository.

    January 26, 2017 at 3:10 am
    • Ramesh Sivaraman

      Hi Tomislav,

      We have updated the blog.

      Thank you very much for the suggestion.

      January 30, 2017 at 1:15 pm
  • Ken Scott

    It would be great to have some better explanation of the admin config.

    #proxysql-admin credentials
    export PROXYSQL_USERNAME=”admin”
    export PROXYSQL_PASSWORD=”admin”
    export PROXYSQL_HOSTNAME=”localhost”
    export PROXYSQL_PORT=”6032″
    export CLUSTER_USERNAME=”admin”
    export CLUSTER_PASSWORD=”admin”
    export CLUSTER_HOSTNAME=”localhost”
    export CLUSTER_PORT=”3306″
    export MONITOR_USERNAME=”monitor”
    export MONITOR_PASSWORD=”monit0r”
    export CLUSTER_APP_USERNAME=”proxysql_user”
    export CLUSTER_APP_PASSWORD=”passw0rd”
    export WRITE_HOSTGROUP_ID=”10″
    export READ_HOSTGROUP_ID=”11″
    export MODE=”singlewrite”

    I’ve been having some difficulty connecting to my Percona cluster because it’s not clear the different between the “CLUSTER_APP” account and “CLUSTER_USERNAME”. I see this error in the log file:

    2017-02-02T20:17:21.624590Z 50765 [Note] Aborted connection 50765 to db: ‘unconnected’ user: ‘monitor’ host: ‘’ (Got an error reading communication packets)

    Any help or a push in the right direction would be a big help.


    February 2, 2017 at 3:31 pm
    • Ramesh

      Hi Ken,

      We have updated blog with script usage information.

      CLUSTER_USERNAME variable is used for connecting to the Percona XtraDB Cluster node for ProxySQL configuration. It is important that this user is present in the Cluster and that the super user account is being used to setup the configuration.

      CLUSTER_APP_USERNAME is a ProxySQL application username for connecting to the Percona XtraDB Cluster node. proxysql-admin tool will create this user in Percona XtraDB Cluster. If this user is already present proxysql-admin tool will skip the user creation.

      February 8, 2017 at 12:34 pm
  • Angel Abella

    I have a problem with theparoxysql-admin tool… I have my percona cluster in a VPC in EC2 and my Proxysql in another VPC.
    When I run the admin it configures my sqlservers private ip address so my proxysql cannot reach them from the other VPC.
    Is there any way of fixxing this? I have tried updating the mysql_server config table table with the public ip addresses but it just adds the private addresss again and ignores the public ones.


    November 7, 2018 at 7:15 am
    • Ramesh Sivaraman

      Hi Angel,

      proxysql-admin script will configure PXC cluster based on wsrep_incoming_addresses status variable. I think should configure PXC with public IPs. Even if you manually update mysql_server table with public IPs, proxysql-monitoring script will update the IPs from wsrep_incoming_addresses status variable.


      November 15, 2018 at 1:48 am
  • Karnav Zaveri

    I tried to use Proxy-admin package on CentOS and it keep on throwing error that “The mysql client was not found, please install the mysql client package.”. I ensured that mysql client exists on the machine. I am trying to sync users between PXC and ProxySQL.

    July 16, 2020 at 7:22 am

Comments are closed.

Use Percona's Technical Forum to ask any follow-up questions on this blog topic.