An open-source entry in TopGit's GitHub warehouse: mysql/mysql-operator, 947 stars, Python. MySQL Operator for Kubernetes
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Copyright (c) 2020, 2026, Oracle and/or its affiliates.
This is a release of MySQL Operator for Kubernetes.
License information can be found in the LICENSE file.
This distribution may include materials developed by third parties. For license
and attribution notices for these materials, please refer to the
LICENSE file.
For more information on MySQL Operator for Kubernetes visit https://dev.mysql.com/doc/mysql-operator/en/
For additional downloads and the source of MySQL Operator for Kubernetes visit https://dev.mysql.com/downloads/operator/
Contributing information for code and non-code submissions can be found in the CONTRIBUTING file.
MySQL Operator for Kubernetes is brought to you by the MySQL team at Oracle.
Introduction
The MySQL Operator for Kubernetes is an operator for managing MySQL InnoDB Cluster setups inside a Kubernetes Cluster.
It manages the full lifecycle with set up and maintenance that includes automating upgrades and backup.
MySQL Operator for Kubernetes is brought to you by the MySQL team at Oracle.
Issues and Pull Requests
As with all MySQL projects, issues (including bugs and feature requests) are tracked here:
https://bugs.mysql.com/
Pull requests submitted via github are also tracked at bugs.mysql.com; see CONTRIBUTING for related information.
MySQL Operator for Kubernetes Installation
Using Manifest Files with kubectl
First deploy the Custom Resource Definition (CRDs):
This deploys the latest MySQL Operator for Kubernetes from DockerHub using all defaults; although the deployment
can be customized through a variety of options to override built-in defaults. The name of the deployment is
mysql-operator. See the documentation for details.
In this release, operator topology is frozen after the initial topology has been persisted on first
startup. A global operator blocks every other operator install, scoped operators must keep a disjoint
deployment.namespaces set, and later manual or raw-manifest topology changes are rejected on operator
startup. Choose deployment.namespaces and deployment.standalone up front; changing them after bootstrap
requires removing the operator and reinstalling it with the desired scope.
MySQL InnoDB Cluster Installation
Using kubectl
For creating a MySQL InnoDB Cluster, first create a secret with credentials for a MySQL root user used to
perform administrative tasks in the cluster. For example:
A MySQL InnoDB Cluster Service is created inside the Kubernetes cluster:
$> kubectl get service mycluster
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mycluster ClusterIP 10.110.228.51 <none> 3306/TCP,33060/TCP,6446/TCP,6448/TCP,6447/TCP,6449/TCP,6450/TCP 26h
The ports represent read-write and read-only ports for the MySQL Protocol and the X Protocol.
Use describe or see the documentation for additional information.
Using MySQL Shell
This example creates a new container named myshell using the container-registry.oracle.com/mysql/community-operator image, and immediately executes MySQL Shell:
$> kubectl run --rm -it myshell --image=container-registry.oracle.com/mysql/community-operator -- mysqlsh
If you don't see a command prompt, try pressing enter.
MySQL JS> \connect root@mycluster
Creating a session to 'root@mycluster'
Please provide the password for 'root@mycluster': ******
MySQL mycluster JS>
Using root@mycluster connection assumes the default namespace is used; the long form is {innodbclustername}.{namespace}.svc.cluster.local.
Each MySQL instance has MySQL Shell installed that can be used when troubleshooting.
Using Port Forwarding
Kubernetes port forwarding creates a redirection from your local machine to use a MySQL client, such as mysql or MySQL Workbench.
For example, for read-write connection to the primary using the MySQL protocol:
$> kubectl port-forward service/mycluster mysql
Forwarding from 127.0.0.1:3306 -> 6446
Forwarding from [::1]:3306 -> 6446
And in a second terminal:
$> mysql -h127.0.0.1 -P3306 -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...
When prompted, enter the password used when creating the Secret.
More Information
Refer to the official documentation at:
https://dev.mysql.com/doc/mysql-operator/en/
For additional downloads and the source code, visit:
https://dev.mysql.com/downloads
https://github.com/mysql/mysql-operator
Contributing to MySQL Operator for Kubernetes, see:
TopGit's metadata for mysql/mysql-operator does not record a license. Most public repositories on GitHub ARE open source, but the exact terms vary — verify by opening the LICENSE file directly.
What is mysql/mysql-operator?
mysql/mysql-operator (mysql/mysql-operator) is a Python project on GitHub. From the project's own README: MySQL Operator for Kubernetes
Where do I read more about mysql/mysql-operator?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/mysql/mysql-operator is the definitive source.
Read full README in the tab above.
Still deciding about mysql-operator?
One click hands the question to an AI along with this page — see what it says about mysql-operator.