前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL Router Restful API (中文)

MySQL Router Restful API (中文)

作者头像
MySQLSE
发布2022-11-21 20:03:11
2.1K0
发布2022-11-21 20:03:11
举报

MySQL 路由器允许应用程序对后端 MySQL InnoDB Cluster 的 MySQL 服务器进行透明路由访问。

从 MySQL 8.0.17 版本起,Restful API(Http 访问)功能已经被添加到 MySQL Router。

本文旨在提供使用 Router Restful API 的教程。在MySQL 8.0.29 版本上测试过。

设置和假设

1. MySQL InnoDB Cluster 8.0.29 - 集群名称为“mycluster”

2. 安装 MySQL Shell 8.0.29 和使用 Linux 操作系统

3. Restful API 用户:'myapiuser'

路由器配置

Bootstrap 是创建路由器配置设置的过程。

例如

$> mysqlrouter --bootstrap admin:adminPassword@node1:node1Port --directory /tmp/myrouter --account routerfriend --account-create always

创建出来的 /tmp/myrouter 目录有配置、密钥和脚本。

默认在 mysqlrouter.conf 设置定义里,启用 8443 的Http Port 为 API 端口。

---

[http_server]

port=8443

ssl=1

ssl_cert=/tmp/myrouter/data/router-cert.pem

ssl_key=/tmp/myrouter/data/router-key.pem

[http_auth_realm:default_auth_realm]

backend=default_auth_backend

method=basic

name=default_realm

[rest_router]

require_realm=default_auth_realm

[rest_api]

[http_auth_backend:default_auth_backend]

backend=metadata_cache

[rest_routing]

require_realm=default_auth_realm

[rest_metadata_cache]

require_realm=default_auth_realm

---

路由器帐户设置

身份验证在 mysqlrouter.conf 下配置为 'backend=metadata_cache'

[http_auth_backend:default_auth_backend]

backend=metadata_cache

Restful api 用户表 mysql_innodb_cluster_metadata.v2_router_rest_accounts 定义Restful API 的用户。

以下步骤提供有关用户创建的详细信息

1. 使用具有用户创建权限的 root 或管理员登录 MySQL 服务器节点(主节点),并创建用户帐户(例如:myapiuser) - 这是一个虚拟帐户,将在第 3 步中删除。

mysql> CREATE USER myapiuser IDENTIFIED BY 'myapiuser';

2. 创建用户帐户条目 - 密码是来自 mysql.user 的authentication_string。以下SQL是在路由rest用户表account“v2_router_rest_accounts”创建用户名='myapiuser'。可以根据您的设置进行更改。

mysql> INSERT INTO mysql_innodb_cluster_metadata.v2_router_rest_accounts

( cluster_id, user, authentication_method, authentication_string, description, privileges, attributes)

SELECT cluster_id, user, 'modular_crypt_format', authentication_string, 'api user', null, null

FROM mysql_innodb_cluster_metadata.clusters, mysql.user

WHERE user='myapiuser' and cluster_name = 'mycluster'

3. 用户“myapiuser”可以被删除。

mysql> DROP USER myapiuser;

通过浏览器访问Restful API(以Chrome浏览器为例)

Restful API http 端口打开为 8443。可以通过 URL 访问 swagger.json:

https://<MySQL Router IP>:8443/api/20190715/swagger.json

api/20190715/ - 它是 API 基本路径。

它还显示可以通过 API 基本路径访问的“路径”列表。

要访问详细信息,需要用户/密码才能访问。

例如,检查路由器状态 - https://Router IP:8443/api/20190715/router/status

输入之前在路由器帐户设置中创建的用户/密码可以访问状态,如下所示:

可以尝试其他 Restful API paths、metadata/connection/routes 等等 详细信息。

参考:

https://dev.mysql.com/doc/mysql-router/8.0/en/mysql-router-rest-api-setup.html

https://dev.mysql.com/doc/mysql-router/8.0/en/mysql-router-innodb-cluster.html

https://dev.mysql.com/doc/relnotes/mysql-router/en/news-8-0-17.html

https://dev.mysql.com/doc/mysql-router/8.0/en/mysql-router-deploying-bootstrapping.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL解决方案工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档