Overview
The mysql-router charm provides a MySQL 8 Router; it proxies database requests from a principal 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 principal 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.
Important: This documentation supports version 3.x
of the Juju client.
See the OpenStack Charm
guide if you are using the 2.9.x
client.
Usage
The charm is deployed as a subordinate to a principal application and then related to the central mysql-innodb-cluster application:
principal charm A <---> mysql-router A <--->
principal charm B <---> mysql-router B <---> mysql-innodb-cluster
principal charm C <---> mysql-router C <--->
Configuration
See file config.yaml
for the full list of configuration options, along with their descriptions and default values.
Deployment
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 principal application.
Add a relation to the principal application (via the shared-db endpoint):
juju integrate keystone:shared-db keystone-mysql-router:shared-db
Then add a relation to the mysql-innodb-cluster application (via the db-router endpoint):
juju integrate 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 principal 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’).
Actions
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
Documentation
The OpenStack Charms project maintains two documentation guides:
- OpenStack Charm Guide: for project information, including development and support notes
- OpenStack Charms Deployment Guide: for charm usage information
Bugs
Please report bugs on Launchpad.