Juju Charm - Mysql Router
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Zuul 80534d77f2 Merge "Ensure update config function can handle new headers" 10 months ago
actions Use systemd to start/stop mysqlrouter 2 years ago
files Release sync for 20.08 2 years ago
lib Merge "Ensure update config function can handle new headers" 10 months ago
reactive Implement validated restart on change 1 year ago
templates Configure /run/mysql location for PID file 12 months ago
tests Use an actual instantiation of mysql-router 12 months ago
HACKING.md Upstream charm 3 years ago
README.md Add note about port number 2 years ago
actions.yaml Use systemd to start/stop mysqlrouter 2 years ago
config.yaml Implement validated restart on change 1 year ago
icon.svg Required files 3 years ago
layer.yaml Upstream charm 3 years ago
metadata.yaml Add impish to metadata.yaml 11 months ago
test-requirements.txt Updates to flip all libraries back to master 1 year ago
tox.ini Sync release-tools 1 year ago
wheelhouse.txt Pin Tenacity 10 months ago



The mysql-router charm provides a MySQL 8 Router; it proxies database requests from a principle application to a MySQL 8 InnoDB Cluster. MySQL Router handles cluster communication and understands the cluster schema.

It is a subordinate charm that is used in conjunction with the mysql-innodb-cluster charm. It is also used with a principle charm that supports the 'mysql-shared' interface. The current list of such charms can be obtained from the Charm Store (the charms officially supported by the OpenStack Charms project are published by 'openstack-charmers').

Important: The eoan series is the first series supported by the mysql-innodb-cluster and mysql-router charms. These charms replace the percona-cluster charm starting with the focal series.


The charm is deployed as a subordinate to a principle application and then related to the central mysql-innodb-cluster application:

principle charm A <---> mysql-router A <--->
principle charm B <---> mysql-router B <---> mysql-innodb-cluster
principle charm C <---> mysql-router C <--->


See file config.yaml for the full list of configuration options, along with their descriptions and default values.


To deploy a MySQL 8 Router:

juju deploy mysql-router

Add a relation to a principle application (via the shared-db endpoint):

juju add-relation keystone:shared-db mysql-router:shared-db

Then add a relation to the mysql-innodb-cluster application (via the db-router endpoint):

juju add-relation msyql-router:db-router mysql-innodb-cluster:db-router

Scale out is accomplished by adding units to the principle application:

juju add-unit keystone

Note: If more than one mysql-router application is placed on the same machine the base-port configuration option is needed to ensure non-conflicting TCP port numbers are used (the default is '3306').


This section lists Juju actions supported by the charm. Actions allow specific operations to be performed on a per-unit basis. To display action descriptions run juju actions mysql-router. If the charm is not deployed then see file actions.yaml.

  • stop-mysqlrouter
  • start-mysqlrouter
  • restart-mysqlrouter


Please report bugs on Launchpad.

For general charm questions refer to the OpenStack Charm Guide.