ProxySQL Getting Started

ProxySQL Getting Started

October 15, 2022

The official document:

Getting Started

See this docker-compose.yml and proxysql.cnf for the example of proxysql.

With this configuration, you can access a proxysql by

docker compose up -d
mysql -h 127.0.0.1 -u radmin -P 16032-pradmin --prompt "ProxySQL Admin> "

There are multiple ports

  • 6032: MySQL port to access ProxySQL configurations
  • 6033: Backend MySQL ports, defined in mysql_variables.interfaces
  • 6070: Rest API port, including Prometheus endpoints. Official document

Basics of a configuration file

See an official article.

There are important separated configurations

  • admin_variables: for the admin interface
  • mysql_variables: for handling the incoming MySQL traffic
  • mysql_servers: for the backend servers towards which the incoming MySQL traffic
mysql_servers =
(
  {
    address="mysql"
    port=3306
    hostgroup=1
    max_connections=200
  }
)
  • mysql_users: users which can connect to the proxy, and the users with which the proxy can connect to the backend servers
mysql_users =
(
  {
    username = "root"
    password = "password"
    default_hostgroup = 1
    max_connections=1000
    default_schema="information_schema"
    active = 1
  }
)

Proxy to a MySQL cluster

See proxysql.cnf for the example of a configuration.

  • mysql_query_rules: Rules to route queries to each backend MySQL. For example, in this official page, this is used to show how to split a read and write query though it’s not completed.

Confirming which query goes to which host group, we can see stats tables.

SELECT * FROM stats_mysql_query_digest;

Also, see an article for configurations of ProxySQL.

Last updated on