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.
Felipe Reyes 9563b204ad Set [DEFAULT].unknown_config_option to warning. 2 weeks ago
actions Use systemd to start/stop mysqlrouter 2 years ago
files Release sync for 20.08 2 years ago
lib Set [DEFAULT].unknown_config_option to warning. 2 weeks ago
reactive Implement validated restart on change 1 year ago
templates Add logrotate template rendered upon installation 2 months ago
tests Configure mysqlrouter.conf sections based on wildcards 4 weeks ago
HACKING.md Upstream charm 3 years ago
README.md Review README 8 months ago
actions.yaml Use systemd to start/stop mysqlrouter 2 years ago
config.yaml Add max_connections configuration option 6 months ago
icon.svg Required files 3 years ago
layer.yaml Upstream charm 3 years ago
metadata.yaml Fixes for jammy support 1 month ago
test-requirements.txt Update to build using charmcraft 3 months ago
tox.ini Review README 8 months 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 for joining, say, Keystone to the cloud database:

juju deploy mysql-router keystone-mysql-router

Note: The mysql-router application is typically given a name that corresponds to the associated principle application.

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

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

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

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

Important: When network spaces are used, the mysql-router and mysql-innodb-cluster charms must be configured such that the 'db-router' endpoint is bound to the same space.

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 --schema mysql-router. If the charm is not deployed then see file actions.yaml.

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


The OpenStack Charms project maintains two documentation guides:


Please report bugs on Launchpad.