SlideShare a Scribd company logo
Frédéric Descamps
Community Manager
MySQL
February 2021
MySQL Router
REST API
Who am I ?
about.me/lefred
Copyright @ 2021 Oracle and/or its affiliates.
2
Frédéric Descamps
@lefred
MySQL Evangelist
Managing MySQL since 3.20
devops believer
living in Belgium
h ps://lefred.be
Copyright @ 2021 Oracle and/or its affiliates.
3
What is it ?
MySQL Router
Copyright @ 2021 Oracle and/or its affiliates.
4
MySQL Router
MySQL Router is a building block for high availability (HA) solutions. It simpli es application
development by intelligently routing connections to MySQL servers for increased
performance and reliability.
MySQL Router is part of MySQL InnoDB Cluster and MySQL InnoDB ReplicaSet.
MySQL Router is wri ent in C++ and is part of MySQL's trunk.
Copyright @ 2021 Oracle and/or its affiliates.
5
MySQL Router
REST API
Copyright @ 2021 Oracle and/or its affiliates.
6
MySQL Router REST API - Why ?
When a problem occurs, it's not always obvious to understand why ? For example if for a
given route, the amount of max_connections is reached, it's important to know it and to
know that value before we reach it.
MySQL Router exposes data (statistics, se ings, ..,) as REST endpoints via HTTP methods
as JSON payload.
This is explained in WL#8965.
Copyright @ 2021 Oracle and/or its affiliates.
7
MySQL Router REST API - How ?
Since MySQL 8.0.16, MySQL Router has the possibility to launch an internal h p server. At
that time it could only serve static les.
Then, in MySQL 8.0.17 we added the REST API to MySQL Router.
With MySQL 8.0.20 the authentication credentials to access the REST API could also be
stored on MySQL in a metadata table, before it was only using a le. See WL#12952.
And nally with MySQL 8.0.22, bootstrapping a MySQL Router also con gures the REST
API functionality into the generated mysqlrouter.conf con guration le.
Copyright @ 2021 Oracle and/or its affiliates.
8
Test it and get the paths
To query swagger.json no authentication is required:
Copyright @ 2021 Oracle and/or its affiliates.
9
MySQL Router REST API - Authentication
MySQL Router uses realms for authentication. The backend can be a le or a record in a
metadata table:
[http_auth_backend:default_auth_backend]
backend=metadata_cache
If you use a le, the mysqlrouter_passwd command-line utility must be used to generate
and manage the users.
Copyright @ 2021 Oracle and/or its affiliates.
10
MySQL Router REST API - Authentication (metadata)
So there is a table in the metadata that we can use to connect to the REST API. Let's have a
look...
Copyright @ 2021 Oracle and/or its affiliates.
11
MySQL Router REST API - Authentication (metadata)
So there is a table in the metadata that we can use to connect to the REST API. Let's have a
look...
Copyright @ 2021 Oracle and/or its affiliates.
11
MySQL Router REST API - Authentication (metadata)
So there is a table in the metadata that we can use to connect to the REST API. Let's have a
look...
So when we bootstrap a Router against a MySQL InnoDB Cluster or a MySQL InnoDB
ReplicaSet, we need to add a user in this table.
Copyright @ 2021 Oracle and/or its affiliates.
11
My journey to add a user in router_rest_accounts
Let me share with you my journey to insert a user into that table...
Copyright @ 2021 Oracle and/or its affiliates.
12
My journey to add a user in router_rest_accounts
Let me share with you my journey to insert a user into that table...
Copyright @ 2021 Oracle and/or its affiliates.
12
Adding a user in router_rest_accounts - A empt #1
Let's try:
INSERT INTO router_rest_accounts VALUES (
(SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1),
"lefred", "modular_crypt_format", "fosdem", NULL, NULL, NULL);
Copyright @ 2021 Oracle and/or its affiliates.
13
Adding a user in router_rest_accounts - A empt #1
Let's try:
INSERT INTO router_rest_accounts VALUES (
(SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1),
"lefred", "modular_crypt_format", "fosdem", NULL, NULL, NULL);
Copyright @ 2021 Oracle and/or its affiliates.
13
Adding a user in router_rest_accounts - A empt #1
Let's try:
INSERT INTO router_rest_accounts VALUES (
(SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1),
"lefred", "modular_crypt_format", "fosdem", NULL, NULL, NULL);
Copyright @ 2021 Oracle and/or its affiliates.
13
lefred - security : 0 - 1
Copyright @ 2021 Oracle and/or its affiliates.
14
Adding a user in router_rest_accounts - A empt #2
For my second a empt, I asked to the router dev team for an example of string I could use.
The reply was simple 'copy' the value of your authentication_string column in the
mysql.user:
Copyright @ 2021 Oracle and/or its affiliates.
15
Adding a user in router_rest_accounts - A empt #2
For my second a empt, I asked to the router dev team for an example of string I could use.
The reply was simple 'copy' the value of your authentication_string column in the
mysql.user:
REPLACE INTO router_rest_accounts VALUES (
(SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1),
"lefred", "modular_crypt_format",
(SELECT authentication_string FROM mysql.user WHERE user='clusteradmin'),
NULL, NULL, NULL);
Copyright @ 2021 Oracle and/or its affiliates.
15
Adding a user in router_rest_accounts - A empt #2
Let's test it:
Copyright @ 2021 Oracle and/or its affiliates.
16
Adding a user in router_rest_accounts - A empt #2
Let's test it:
It works... but I don't want to use a MySQL user to monitor Router !
Copyright @ 2021 Oracle and/or its affiliates.
16
Adding a user in router_rest_accounts - A empt #2
Let's test it:
It works... but I don't want to use a MySQL user to monitor Router !
It's important to provide accurate information and context when you ask something...
Copyright @ 2021 Oracle and/or its affiliates.
16
lefred - developer : 0 - 1
Copyright @ 2021 Oracle and/or its affiliates.
17
Adding a user in router_rest_accounts - A empt #3
My goal was to manage the credential for the REST API using a MySQL Shell Plugin...
I've been said that I should use the same string as a MySQL user... let's generate it !
Copyright @ 2021 Oracle and/or its affiliates.
18
Adding a user in router_rest_accounts - A empt #3
My goal was to manage the credential for the REST API using a MySQL Shell Plugin...
I've been said that I should use the same string as a MySQL user... let's generate it !
I created a program that does it:
Copyright @ 2021 Oracle and/or its affiliates.
18
Adding a user in router_rest_accounts - A empt #3
My goal was to manage the credential for the REST API using a MySQL Shell Plugin...
I've been said that I should use the same string as a MySQL user... let's generate it !
I created a program that does it:
REPLACE INTO router_rest_accounts VALUES (
(SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1),
"lefred", "modular_crypt_format",
'$A$005$zwM4!A72%s)](-ed8FN-euE7cwRygTogySEBOTQY46UbIU483McwXJYiovTbML2',
NULL, NULL, NULL);
Copyright @ 2021 Oracle and/or its affiliates.
18
Adding a user in router_rest_accounts - A empt #3
Let's test it:
Copyright @ 2021 Oracle and/or its affiliates.
19
Adding a user in router_rest_accounts - A empt #3
Let's test it:
It works... but I don't want to use an external program in my plugin, that's not very portable.
Copyright @ 2021 Oracle and/or its affiliates.
19
lefred - usability : 0 - 1
Copyright @ 2021 Oracle and/or its affiliates.
20
Adding a user in router_rest_accounts - A empt #4
Mmm... let's try something else...
Copyright @ 2021 Oracle and/or its affiliates.
21
Adding a user in router_rest_accounts - A empt #4
Mmm... let's try something else...
A component !
Copyright @ 2021 Oracle and/or its affiliates.
21
Adding a user in router_rest_accounts - A empt #4
Mmm... let's try something else...
A component !
Copyright @ 2021 Oracle and/or its affiliates.
21
Adding a user in router_rest_accounts - A empt #4
Mmm... let's try something else...
A component !
REPLACE INTO router_rest_accounts VALUES (
(SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1),
"lefred", "modular_crypt_format",
"$A$005$op^'U#+}b)!n*~~3E<{+Pzrzs/Rg9jUO.b4iMY56vET9E3rt2bws/BVw43zpTW8",
NULL, NULL, NULL);
Copyright @ 2021 Oracle and/or its affiliates.
21
Adding a user in router_rest_accounts - A empt #4
Let's test it again:
Copyright @ 2021 Oracle and/or its affiliates.
22
Adding a user in router_rest_accounts - A empt #4
Let's test it again:
It works... but again, another component needs to be installed and maintained...
Copyright @ 2021 Oracle and/or its affiliates.
22
lefred - usability : 0 - 2
Copyright @ 2021 Oracle and/or its affiliates.
23
Adding a user in router_rest_accounts - A empt #5
What else ?
Copyright @ 2021 Oracle and/or its affiliates.
24
Adding a user in router_rest_accounts - A empt #5
What else ?
Let me ask again with more context to the MySQL Router Development Team...
Copyright @ 2021 Oracle and/or its affiliates.
24
Adding a user in router_rest_accounts - A empt #5
What else ?
Let me ask again with more context to the MySQL Router Development Team...
Summary of the answer: we do support MySQL 8.0's default authentication string but also
modular_crypt_format for MCF style password hashes as speci ed in the WL...
Copyright @ 2021 Oracle and/or its affiliates.
24
Adding a user in router_rest_accounts - A empt #5
What else ?
Let me ask again with more context to the MySQL Router Development Team...
Summary of the answer: we do support MySQL 8.0's default authentication string but also
modular_crypt_format for MCF style password hashes as speci ed in the WL...
Oups...
Copyright @ 2021 Oracle and/or its affiliates.
24
Adding a user in router_rest_accounts - A empt #5
What else ?
Let me ask again with more context to the MySQL Router Development Team...
Summary of the answer: we do support MySQL 8.0's default authentication string but also
modular_crypt_format for MCF style password hashes as speci ed in the WL...
Oups...
This means that the standard Python crypt module is what I need !
Copyright @ 2021 Oracle and/or its affiliates.
24
lefred - developer : 0 - 2
Copyright @ 2021 Oracle and/or its affiliates.
25
Adding a user in router_rest_accounts - A empt #5
REPLACE INTO router_rest_accounts VALUES (
(SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1),
"lefred", "modular_crypt_format",
"$5$tzRKNfEyehq1B5/Q$/PlKjs6PCEjNFiSDtdVZV2aL666SZrvKvrMWfYkIO82",
NULL, NULL, NULL);
Copyright @ 2021 Oracle and/or its affiliates.
26
Adding a user in router_rest_accounts - A empt #5
REPLACE INTO router_rest_accounts VALUES (
(SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1),
"lefred", "modular_crypt_format",
"$5$tzRKNfEyehq1B5/Q$/PlKjs6PCEjNFiSDtdVZV2aL666SZrvKvrMWfYkIO82",
NULL, NULL, NULL);
Copyright @ 2021 Oracle and/or its affiliates.
26
Wooohooo o/
Copyright @ 2021 Oracle and/or its affiliates.
27
Examples
MySQL Router REST API
Copyright @ 2021 Oracle and/or its affiliates.
28
Some examples
We can now use the REST API with curl and include that in any montiroring tool like Sensu,
Icinga...
Copyright @ 2021 Oracle and/or its affiliates.
29
MySQL Router & MySQL Shell
With MySQL Shell's router plugin (h ps://github.com/lefred/mysqlshell-plugins), you can
take bene t of all this.
Copyright @ 2021 Oracle and/or its affiliates.
30
MySQL Router & MySQL Shell
With MySQL Shell's router plugin (h ps://github.com/lefred/mysqlshell-plugins), you can
take bene t of all this.
Creating a user for the REST API:
Copyright @ 2021 Oracle and/or its affiliates.
30
MySQL Router & MySQL Shell
With MySQL Shell's router plugin (h ps://github.com/lefred/mysqlshell-plugins), you can
take bene t of all this.
Creating a user for the REST API:
Much easier ;) Convenient++
Copyright @ 2021 Oracle and/or its affiliates.
30
MySQL Router & MySQL Shell
Creating the Router object:
Copyright @ 2021 Oracle and/or its affiliates.
31
MySQL Router & MySQL Shell
Copyright @ 2021 Oracle and/or its affiliates.
32
MySQL Router & MySQL Shell
We have an host blocked by MySQL Router, which one is it ?
Copyright @ 2021 Oracle and/or its affiliates.
33
MySQL Router & MySQL Shell
We have an host blocked by MySQL Router, which one is it ?
Copyright @ 2021 Oracle and/or its affiliates.
33
MySQL Router & MySQL Shell
And nally the routing statistics:
Copyright @ 2021 Oracle and/or its affiliates.
34
Questions ?
Copyright @ 2021 Oracle and/or its affiliates.
35

More Related Content

What's hot

MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
Kenny Gryp
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
Kenny Gryp
 
MySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVMySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRV
Kenny Gryp
 
How to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL ShellHow to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL Shell
Frederic Descamps
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database System
Frederic Descamps
 
MySQL Timeout Variables Explained
MySQL Timeout Variables Explained MySQL Timeout Variables Explained
MySQL Timeout Variables Explained
Mydbops
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability
Mydbops
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
Aurimas Mikalauskas
 
MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08
Kenny Gryp
 
MySQL Shell - the best DBA tool !
MySQL Shell - the best DBA tool !MySQL Shell - the best DBA tool !
MySQL Shell - the best DBA tool !
Frederic Descamps
 
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
Frederic Descamps
 
ProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management OverviewProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management Overview
René Cannaò
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
Frederic Descamps
 
State of the Dolphin - May 2022
State of the Dolphin - May 2022State of the Dolphin - May 2022
State of the Dolphin - May 2022
Frederic Descamps
 
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Frederic Descamps
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10
Kenny Gryp
 
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialMySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
Frederic Descamps
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8
Frederic Descamps
 
MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)
Kenny Gryp
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
Colin Charles
 

What's hot (20)

MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
 
MySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVMySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRV
 
How to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL ShellHow to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL Shell
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database System
 
MySQL Timeout Variables Explained
MySQL Timeout Variables Explained MySQL Timeout Variables Explained
MySQL Timeout Variables Explained
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
 
MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08
 
MySQL Shell - the best DBA tool !
MySQL Shell - the best DBA tool !MySQL Shell - the best DBA tool !
MySQL Shell - the best DBA tool !
 
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
 
ProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management OverviewProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management Overview
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
 
State of the Dolphin - May 2022
State of the Dolphin - May 2022State of the Dolphin - May 2022
State of the Dolphin - May 2022
 
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10
 
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialMySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8
 
MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
 

Similar to MySQL Router REST API

State of The Dolphin - May 2021
State of The Dolphin - May 2021State of The Dolphin - May 2021
State of The Dolphin - May 2021
Frederic Descamps
 
the State of the Dolphin - October 2020
the State of the Dolphin - October 2020the State of the Dolphin - October 2020
the State of the Dolphin - October 2020
Frederic Descamps
 
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
Frederic Descamps
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
Frederic Descamps
 
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDS
Cloud native -  Why to use MySQL 8.0 and how to use it on oci with MDSCloud native -  Why to use MySQL 8.0 and how to use it on oci with MDS
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDS
Frederic Descamps
 
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
Frederic Descamps
 
MySQL 8.0 : High Availability Solution for Everybody
MySQL 8.0 : High Availability Solution for EverybodyMySQL 8.0 : High Availability Solution for Everybody
MySQL 8.0 : High Availability Solution for Everybody
Frederic Descamps
 
MySQL Quick Dive
MySQL Quick DiveMySQL Quick Dive
MySQL Quick Dive
Sudipta Kumar Sahoo
 
NoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSONNoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSON
Mario Beck
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
Frederic Descamps
 
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
Frederic Descamps
 
Sunshine php my sql 8.0 v2
Sunshine php my sql 8.0 v2Sunshine php my sql 8.0 v2
Sunshine php my sql 8.0 v2
Kathy Forte (Hassard)
 
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
Frederic Descamps
 
DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !
Frederic Descamps
 
Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New Features
Dave Stokes
 
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...
Frederic Descamps
 
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfRivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
Frederic Descamps
 
Midwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL FeaturesMidwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL Features
Dave Stokes
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDS
Frederic Descamps
 
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
Frederic Descamps
 

Similar to MySQL Router REST API (20)

State of The Dolphin - May 2021
State of The Dolphin - May 2021State of The Dolphin - May 2021
State of The Dolphin - May 2021
 
the State of the Dolphin - October 2020
the State of the Dolphin - October 2020the State of the Dolphin - October 2020
the State of the Dolphin - October 2020
 
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
 
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDS
Cloud native -  Why to use MySQL 8.0 and how to use it on oci with MDSCloud native -  Why to use MySQL 8.0 and how to use it on oci with MDS
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDS
 
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
 
MySQL 8.0 : High Availability Solution for Everybody
MySQL 8.0 : High Availability Solution for EverybodyMySQL 8.0 : High Availability Solution for Everybody
MySQL 8.0 : High Availability Solution for Everybody
 
MySQL Quick Dive
MySQL Quick DiveMySQL Quick Dive
MySQL Quick Dive
 
NoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSONNoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSON
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
 
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
 
Sunshine php my sql 8.0 v2
Sunshine php my sql 8.0 v2Sunshine php my sql 8.0 v2
Sunshine php my sql 8.0 v2
 
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
 
DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !
 
Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New Features
 
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...
 
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfRivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
 
Midwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL FeaturesMidwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL Features
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDS
 
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
 

More from Frederic Descamps

MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
Frederic Descamps
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and Histograms
Frederic Descamps
 
Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio Code
Frederic Descamps
 
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
Frederic Descamps
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Frederic Descamps
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQL
Frederic Descamps
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
Frederic Descamps
 
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
Frederic Descamps
 
MySQL Database Service Webinar: Installing Drupal in oci with mds
MySQL Database Service Webinar: Installing Drupal in oci with mdsMySQL Database Service Webinar: Installing Drupal in oci with mds
MySQL Database Service Webinar: Installing Drupal in oci with mds
Frederic Descamps
 
MySQL 8.0 Document Store - Discovery of a New World
MySQL 8.0 Document Store - Discovery of a New WorldMySQL 8.0 Document Store - Discovery of a New World
MySQL 8.0 Document Store - Discovery of a New World
Frederic Descamps
 
Oracle Developer Live: Deploying MySQL InnoDB Cluster on OCI with Terraform
Oracle Developer Live: Deploying MySQL InnoDB Cluster on OCI with TerraformOracle Developer Live: Deploying MySQL InnoDB Cluster on OCI with Terraform
Oracle Developer Live: Deploying MySQL InnoDB Cluster on OCI with Terraform
Frederic Descamps
 
MySQL Database Service Webinar: Upgrading from on-premise MySQL to MDS
MySQL Database Service Webinar: Upgrading from on-premise MySQL to MDSMySQL Database Service Webinar: Upgrading from on-premise MySQL to MDS
MySQL Database Service Webinar: Upgrading from on-premise MySQL to MDS
Frederic Descamps
 
MySQL Database Service Webinar - Installing WordPress in OCI with MDS
MySQL Database Service Webinar - Installing WordPress in OCI with MDSMySQL Database Service Webinar - Installing WordPress in OCI with MDS
MySQL Database Service Webinar - Installing WordPress in OCI with MDS
Frederic Descamps
 
MySQL Tech Café #8: MySQL 8.0 for Python Developers
MySQL Tech Café #8: MySQL 8.0 for Python DevelopersMySQL Tech Café #8: MySQL 8.0 for Python Developers
MySQL Tech Café #8: MySQL 8.0 for Python Developers
Frederic Descamps
 
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
Frederic Descamps
 

More from Frederic Descamps (15)

MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and Histograms
 
Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio Code
 
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQL
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
 
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
 
MySQL Database Service Webinar: Installing Drupal in oci with mds
MySQL Database Service Webinar: Installing Drupal in oci with mdsMySQL Database Service Webinar: Installing Drupal in oci with mds
MySQL Database Service Webinar: Installing Drupal in oci with mds
 
MySQL 8.0 Document Store - Discovery of a New World
MySQL 8.0 Document Store - Discovery of a New WorldMySQL 8.0 Document Store - Discovery of a New World
MySQL 8.0 Document Store - Discovery of a New World
 
Oracle Developer Live: Deploying MySQL InnoDB Cluster on OCI with Terraform
Oracle Developer Live: Deploying MySQL InnoDB Cluster on OCI with TerraformOracle Developer Live: Deploying MySQL InnoDB Cluster on OCI with Terraform
Oracle Developer Live: Deploying MySQL InnoDB Cluster on OCI with Terraform
 
MySQL Database Service Webinar: Upgrading from on-premise MySQL to MDS
MySQL Database Service Webinar: Upgrading from on-premise MySQL to MDSMySQL Database Service Webinar: Upgrading from on-premise MySQL to MDS
MySQL Database Service Webinar: Upgrading from on-premise MySQL to MDS
 
MySQL Database Service Webinar - Installing WordPress in OCI with MDS
MySQL Database Service Webinar - Installing WordPress in OCI with MDSMySQL Database Service Webinar - Installing WordPress in OCI with MDS
MySQL Database Service Webinar - Installing WordPress in OCI with MDS
 
MySQL Tech Café #8: MySQL 8.0 for Python Developers
MySQL Tech Café #8: MySQL 8.0 for Python DevelopersMySQL Tech Café #8: MySQL 8.0 for Python Developers
MySQL Tech Café #8: MySQL 8.0 for Python Developers
 
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 

MySQL Router REST API

  • 2. Who am I ? about.me/lefred Copyright @ 2021 Oracle and/or its affiliates. 2
  • 3. Frédéric Descamps @lefred MySQL Evangelist Managing MySQL since 3.20 devops believer living in Belgium h ps://lefred.be Copyright @ 2021 Oracle and/or its affiliates. 3
  • 4. What is it ? MySQL Router Copyright @ 2021 Oracle and/or its affiliates. 4
  • 5. MySQL Router MySQL Router is a building block for high availability (HA) solutions. It simpli es application development by intelligently routing connections to MySQL servers for increased performance and reliability. MySQL Router is part of MySQL InnoDB Cluster and MySQL InnoDB ReplicaSet. MySQL Router is wri ent in C++ and is part of MySQL's trunk. Copyright @ 2021 Oracle and/or its affiliates. 5
  • 6. MySQL Router REST API Copyright @ 2021 Oracle and/or its affiliates. 6
  • 7. MySQL Router REST API - Why ? When a problem occurs, it's not always obvious to understand why ? For example if for a given route, the amount of max_connections is reached, it's important to know it and to know that value before we reach it. MySQL Router exposes data (statistics, se ings, ..,) as REST endpoints via HTTP methods as JSON payload. This is explained in WL#8965. Copyright @ 2021 Oracle and/or its affiliates. 7
  • 8. MySQL Router REST API - How ? Since MySQL 8.0.16, MySQL Router has the possibility to launch an internal h p server. At that time it could only serve static les. Then, in MySQL 8.0.17 we added the REST API to MySQL Router. With MySQL 8.0.20 the authentication credentials to access the REST API could also be stored on MySQL in a metadata table, before it was only using a le. See WL#12952. And nally with MySQL 8.0.22, bootstrapping a MySQL Router also con gures the REST API functionality into the generated mysqlrouter.conf con guration le. Copyright @ 2021 Oracle and/or its affiliates. 8
  • 9. Test it and get the paths To query swagger.json no authentication is required: Copyright @ 2021 Oracle and/or its affiliates. 9
  • 10. MySQL Router REST API - Authentication MySQL Router uses realms for authentication. The backend can be a le or a record in a metadata table: [http_auth_backend:default_auth_backend] backend=metadata_cache If you use a le, the mysqlrouter_passwd command-line utility must be used to generate and manage the users. Copyright @ 2021 Oracle and/or its affiliates. 10
  • 11. MySQL Router REST API - Authentication (metadata) So there is a table in the metadata that we can use to connect to the REST API. Let's have a look... Copyright @ 2021 Oracle and/or its affiliates. 11
  • 12. MySQL Router REST API - Authentication (metadata) So there is a table in the metadata that we can use to connect to the REST API. Let's have a look... Copyright @ 2021 Oracle and/or its affiliates. 11
  • 13. MySQL Router REST API - Authentication (metadata) So there is a table in the metadata that we can use to connect to the REST API. Let's have a look... So when we bootstrap a Router against a MySQL InnoDB Cluster or a MySQL InnoDB ReplicaSet, we need to add a user in this table. Copyright @ 2021 Oracle and/or its affiliates. 11
  • 14. My journey to add a user in router_rest_accounts Let me share with you my journey to insert a user into that table... Copyright @ 2021 Oracle and/or its affiliates. 12
  • 15. My journey to add a user in router_rest_accounts Let me share with you my journey to insert a user into that table... Copyright @ 2021 Oracle and/or its affiliates. 12
  • 16. Adding a user in router_rest_accounts - A empt #1 Let's try: INSERT INTO router_rest_accounts VALUES ( (SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1), "lefred", "modular_crypt_format", "fosdem", NULL, NULL, NULL); Copyright @ 2021 Oracle and/or its affiliates. 13
  • 17. Adding a user in router_rest_accounts - A empt #1 Let's try: INSERT INTO router_rest_accounts VALUES ( (SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1), "lefred", "modular_crypt_format", "fosdem", NULL, NULL, NULL); Copyright @ 2021 Oracle and/or its affiliates. 13
  • 18. Adding a user in router_rest_accounts - A empt #1 Let's try: INSERT INTO router_rest_accounts VALUES ( (SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1), "lefred", "modular_crypt_format", "fosdem", NULL, NULL, NULL); Copyright @ 2021 Oracle and/or its affiliates. 13
  • 19. lefred - security : 0 - 1 Copyright @ 2021 Oracle and/or its affiliates. 14
  • 20. Adding a user in router_rest_accounts - A empt #2 For my second a empt, I asked to the router dev team for an example of string I could use. The reply was simple 'copy' the value of your authentication_string column in the mysql.user: Copyright @ 2021 Oracle and/or its affiliates. 15
  • 21. Adding a user in router_rest_accounts - A empt #2 For my second a empt, I asked to the router dev team for an example of string I could use. The reply was simple 'copy' the value of your authentication_string column in the mysql.user: REPLACE INTO router_rest_accounts VALUES ( (SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1), "lefred", "modular_crypt_format", (SELECT authentication_string FROM mysql.user WHERE user='clusteradmin'), NULL, NULL, NULL); Copyright @ 2021 Oracle and/or its affiliates. 15
  • 22. Adding a user in router_rest_accounts - A empt #2 Let's test it: Copyright @ 2021 Oracle and/or its affiliates. 16
  • 23. Adding a user in router_rest_accounts - A empt #2 Let's test it: It works... but I don't want to use a MySQL user to monitor Router ! Copyright @ 2021 Oracle and/or its affiliates. 16
  • 24. Adding a user in router_rest_accounts - A empt #2 Let's test it: It works... but I don't want to use a MySQL user to monitor Router ! It's important to provide accurate information and context when you ask something... Copyright @ 2021 Oracle and/or its affiliates. 16
  • 25. lefred - developer : 0 - 1 Copyright @ 2021 Oracle and/or its affiliates. 17
  • 26. Adding a user in router_rest_accounts - A empt #3 My goal was to manage the credential for the REST API using a MySQL Shell Plugin... I've been said that I should use the same string as a MySQL user... let's generate it ! Copyright @ 2021 Oracle and/or its affiliates. 18
  • 27. Adding a user in router_rest_accounts - A empt #3 My goal was to manage the credential for the REST API using a MySQL Shell Plugin... I've been said that I should use the same string as a MySQL user... let's generate it ! I created a program that does it: Copyright @ 2021 Oracle and/or its affiliates. 18
  • 28. Adding a user in router_rest_accounts - A empt #3 My goal was to manage the credential for the REST API using a MySQL Shell Plugin... I've been said that I should use the same string as a MySQL user... let's generate it ! I created a program that does it: REPLACE INTO router_rest_accounts VALUES ( (SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1), "lefred", "modular_crypt_format", '$A$005$zwM4!A72%s)](-ed8FN-euE7cwRygTogySEBOTQY46UbIU483McwXJYiovTbML2', NULL, NULL, NULL); Copyright @ 2021 Oracle and/or its affiliates. 18
  • 29. Adding a user in router_rest_accounts - A empt #3 Let's test it: Copyright @ 2021 Oracle and/or its affiliates. 19
  • 30. Adding a user in router_rest_accounts - A empt #3 Let's test it: It works... but I don't want to use an external program in my plugin, that's not very portable. Copyright @ 2021 Oracle and/or its affiliates. 19
  • 31. lefred - usability : 0 - 1 Copyright @ 2021 Oracle and/or its affiliates. 20
  • 32. Adding a user in router_rest_accounts - A empt #4 Mmm... let's try something else... Copyright @ 2021 Oracle and/or its affiliates. 21
  • 33. Adding a user in router_rest_accounts - A empt #4 Mmm... let's try something else... A component ! Copyright @ 2021 Oracle and/or its affiliates. 21
  • 34. Adding a user in router_rest_accounts - A empt #4 Mmm... let's try something else... A component ! Copyright @ 2021 Oracle and/or its affiliates. 21
  • 35. Adding a user in router_rest_accounts - A empt #4 Mmm... let's try something else... A component ! REPLACE INTO router_rest_accounts VALUES ( (SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1), "lefred", "modular_crypt_format", "$A$005$op^'U#+}b)!n*~~3E<{+Pzrzs/Rg9jUO.b4iMY56vET9E3rt2bws/BVw43zpTW8", NULL, NULL, NULL); Copyright @ 2021 Oracle and/or its affiliates. 21
  • 36. Adding a user in router_rest_accounts - A empt #4 Let's test it again: Copyright @ 2021 Oracle and/or its affiliates. 22
  • 37. Adding a user in router_rest_accounts - A empt #4 Let's test it again: It works... but again, another component needs to be installed and maintained... Copyright @ 2021 Oracle and/or its affiliates. 22
  • 38. lefred - usability : 0 - 2 Copyright @ 2021 Oracle and/or its affiliates. 23
  • 39. Adding a user in router_rest_accounts - A empt #5 What else ? Copyright @ 2021 Oracle and/or its affiliates. 24
  • 40. Adding a user in router_rest_accounts - A empt #5 What else ? Let me ask again with more context to the MySQL Router Development Team... Copyright @ 2021 Oracle and/or its affiliates. 24
  • 41. Adding a user in router_rest_accounts - A empt #5 What else ? Let me ask again with more context to the MySQL Router Development Team... Summary of the answer: we do support MySQL 8.0's default authentication string but also modular_crypt_format for MCF style password hashes as speci ed in the WL... Copyright @ 2021 Oracle and/or its affiliates. 24
  • 42. Adding a user in router_rest_accounts - A empt #5 What else ? Let me ask again with more context to the MySQL Router Development Team... Summary of the answer: we do support MySQL 8.0's default authentication string but also modular_crypt_format for MCF style password hashes as speci ed in the WL... Oups... Copyright @ 2021 Oracle and/or its affiliates. 24
  • 43. Adding a user in router_rest_accounts - A empt #5 What else ? Let me ask again with more context to the MySQL Router Development Team... Summary of the answer: we do support MySQL 8.0's default authentication string but also modular_crypt_format for MCF style password hashes as speci ed in the WL... Oups... This means that the standard Python crypt module is what I need ! Copyright @ 2021 Oracle and/or its affiliates. 24
  • 44. lefred - developer : 0 - 2 Copyright @ 2021 Oracle and/or its affiliates. 25
  • 45. Adding a user in router_rest_accounts - A empt #5 REPLACE INTO router_rest_accounts VALUES ( (SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1), "lefred", "modular_crypt_format", "$5$tzRKNfEyehq1B5/Q$/PlKjs6PCEjNFiSDtdVZV2aL666SZrvKvrMWfYkIO82", NULL, NULL, NULL); Copyright @ 2021 Oracle and/or its affiliates. 26
  • 46. Adding a user in router_rest_accounts - A empt #5 REPLACE INTO router_rest_accounts VALUES ( (SELECT cluster_id FROM mysql_innodb_cluster_metadata.v2_clusters LIMIT 1), "lefred", "modular_crypt_format", "$5$tzRKNfEyehq1B5/Q$/PlKjs6PCEjNFiSDtdVZV2aL666SZrvKvrMWfYkIO82", NULL, NULL, NULL); Copyright @ 2021 Oracle and/or its affiliates. 26
  • 47. Wooohooo o/ Copyright @ 2021 Oracle and/or its affiliates. 27
  • 48. Examples MySQL Router REST API Copyright @ 2021 Oracle and/or its affiliates. 28
  • 49. Some examples We can now use the REST API with curl and include that in any montiroring tool like Sensu, Icinga... Copyright @ 2021 Oracle and/or its affiliates. 29
  • 50. MySQL Router & MySQL Shell With MySQL Shell's router plugin (h ps://github.com/lefred/mysqlshell-plugins), you can take bene t of all this. Copyright @ 2021 Oracle and/or its affiliates. 30
  • 51. MySQL Router & MySQL Shell With MySQL Shell's router plugin (h ps://github.com/lefred/mysqlshell-plugins), you can take bene t of all this. Creating a user for the REST API: Copyright @ 2021 Oracle and/or its affiliates. 30
  • 52. MySQL Router & MySQL Shell With MySQL Shell's router plugin (h ps://github.com/lefred/mysqlshell-plugins), you can take bene t of all this. Creating a user for the REST API: Much easier ;) Convenient++ Copyright @ 2021 Oracle and/or its affiliates. 30
  • 53. MySQL Router & MySQL Shell Creating the Router object: Copyright @ 2021 Oracle and/or its affiliates. 31
  • 54. MySQL Router & MySQL Shell Copyright @ 2021 Oracle and/or its affiliates. 32
  • 55. MySQL Router & MySQL Shell We have an host blocked by MySQL Router, which one is it ? Copyright @ 2021 Oracle and/or its affiliates. 33
  • 56. MySQL Router & MySQL Shell We have an host blocked by MySQL Router, which one is it ? Copyright @ 2021 Oracle and/or its affiliates. 33
  • 57. MySQL Router & MySQL Shell And nally the routing statistics: Copyright @ 2021 Oracle and/or its affiliates. 34
  • 58. Questions ? Copyright @ 2021 Oracle and/or its affiliates. 35