Mysql Router

  • By MySQL Charm Maintainers
  • Cloud
Channel Revision Published Runs on
latest/edge 155 03 Apr 2024
Ubuntu 22.04 Ubuntu 20.04
8.0/stable 154 02 Apr 2024
Ubuntu 22.04 Ubuntu 20.04
dpe/candidate 119 18 Mar 2024
Ubuntu 22.04
dpe/beta 145 18 Mar 2024
Ubuntu 20.04
dpe/edge 157 17 Apr 2024
Ubuntu 22.04
8.0.19/stable 26 05 May 2022
Ubuntu 22.04 Ubuntu 20.04
8.0.19/edge 26 05 May 2022
Ubuntu 22.04 Ubuntu 20.04
juju deploy mysql-router --channel 8.0/stable
Show information

Platform:

Ubuntu
22.04 20.04

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:

Bugs

Please report bugs on Launchpad.