Charmed MySQL
- By Canonical Data Platform
- Cloud
Channel | Revision | Published | Runs on |
---|---|---|---|
8.0/stable | 151 | 20 Apr 2023 | |
8.0/candidate | 151 | 20 Apr 2023 | |
8.0/beta | 151 | 20 Apr 2023 | |
8.0/edge | 161 | 26 May 2023 |
juju deploy mysql --channel 8.0/stable
You will need Juju 2.9 to be able to run this command. Learn how to upgrade to Juju 2.9.
Deploy universal operators easily with Juju, the Universal Operator Lifecycle Manager.
Platform:
Interfaces/endpoints
Charmed MySQL VM supports modern mysql_client
and legacy mysql
, mysql-shared
, mysql-router
interfaces (in a backward compatible mode).
Note: do NOT relate both modern and legacy interfaces simultaneously.
Modern relations
This charm provides modern ‘mysql_client’ interface. Applications can easily connect MySQL using ‘data_interfaces’ library from ‘data-platform-libs’.
Modern mysql_client
interface (database
endpoint):
Adding a relation is accomplished with juju relate
(or juju integrate
for Juju 3.x) via endpoint database
. Read more about Juju relations (integrations). Example:
# Deploy Charmed MySQL cluster with 3 nodes
juju deploy mysql -n 3 --channel 8.0
# Deploy the relevant charms, e.g. mysql-test-app
juju deploy mysql-test-app
# Relate MySQL with your application
juju relate mysql:database mysql-test-app:database
# Check established relation (using mysql_client interface):
juju status --relations
# Example of the properly established relation:
# > Relation provider Requirer Interface Type
# > mysql:database mysql-test-app:database mysql_client regular
Note: In order to relate with this charm, every table created by the related application must have a primary key. This is required by the group replication plugin enabled in this charm.
Legacy relations
Note: Legacy relations are deprecated and will be discontinued on future releases. Usage should be avoided.
This charm supports several legacy interfaces, e.g. mysql
, mysql-shared
, mysql-router
. They were used in some legacy charms in cross-model relations.
mysql
interface (mysql
endpoint)
It was a popular interface used by some legacy charms (e.g. “MariaDB”, “OSM MariaDB”, “Percona Cluster” and “Mysql Innodb Cluster”), often in cross-model relations:
juju deploy mysql --channel 8.0
juju config mysql mysql-interface-database=mediawiki mysql-interface-user=mediawiki
juju deploy mediawiki
juju relate mysql:mysql mediawiki:db
mysql-router
interface (db-router
endpoint)
It is a relation that one uses with the mysql router charm. The following commands can be executed to deploy and relate to the keystone charm:
juju deploy mysql --channel 8.0
juju deploy mysql-router --series focal
juju deploy keystone --series focal
juju relate mysql-router keystone
juju relate mysql:db-router mysql-router:db-router
Note: pay attention to deploy identical series for keystone
and mysql-router
applications (due to the subordinate charm nature of mysql-router
).
mysql-shared
interface (shared-db
endpoint)
It is a relation that one uses when the application needs to connect directly to the database cluster. It is supported by various legacy charms, e.g. mysql-innodb-cluster. The following commands can be executed to deploy and relate to the keystone charm:
juju deploy mysql --channel 8.0
juju deploy keystone --series focal
juju relate keystone:shared-db mysql:shared-db
Help us improve this documentation
Most of this documentation can be collaboratively discussed and changed on the respective topic in the doc category of the Charmhub forum. See the documentation guidelines if you’d like to contribute.