第 4 章 配置外部 MySQL 数据库
从 Red Hat 3scale API 管理部署外部化数据库时,这意味着与应用程序分离,并对在数据库一级的服务中断有一定的弹性。服务中断的恢复取决于您托管数据库的基础架构或平台供应商提供的服务级别协议 (SLA)。3scale 不提供此功能。有关您选择的部署提供的数据库外部化的详情,请查看相关的文档。
红帽支持使用外部 MySQL 数据库的 3scale 配置。但是,数据库本身不在支持范围之内。
本指南提供有关外部化 MySQL 数据库的信息。当使用默认的 system-mysql 容器集存在多个基础架构问题(如网络或文件系统)时,这非常有用。
先决条件
- 使用具有管理员特权的帐户访问 OpenShift Container Platform 4.x 集群。
- 在 OpenShift 集群上安装 3scale 实例。请参阅在 OpenShift 上安装 3scale API 管理。
- 一个外部(不是 3scale 安装的一部分)MySQL 数据库,根据 外部 MySQL 数据库配置。
要配置外部 MySQL 数据库,请执行以下部分中所述的步骤:
4.1. 外部 MySQL 数据库配置 复制链接链接已复制到粘贴板!
在创建外部 MySQL 数据库时,您需要按照如下所述进行配置。
MySQL 数据库用户
用于配置数据库连接的连接字符串(请参阅 系统数据库 secret,以了解为外部 MySQL 数据库配置连接字符串的位置)必须采用以下格式:
mysql2://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}
mysql2://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}
{DB_PASSWORD} 和 {DB_PORT} 是可选的。
必须创建具有用户名 {DB_USER} 的用户,并将所有特权授予表示为 {DB_NAME} 的数据库。创建用户的命令示例:
CREATE USER 'exampleuser'@'%' IDENTIFIED BY 'examplepass'; GRANT ALL PRIVILEGES ON exampledb.* to 'exampleuser'@'%';
CREATE USER 'exampleuser'@'%' IDENTIFIED BY 'examplepass';
GRANT ALL PRIVILEGES ON exampledb.* to 'exampleuser'@'%';
如果 3scale 的新安装,如果数据库 {DB_NAME} 不存在,它将由安装脚本创建。
二进制日志记录配置
如果在 MySQL 服务器上启用了二进制日志记录,并且数据库用户没有 SUPER 特权,则全局系统变量 log_bin_trust_function_creators 必须设置为 1。这是必要的,因为 3scale 使用存储的流程和触发器。
或者,如果您选择为数据库用户设置 SUPER 特权,请注意它已从 MySQL 8.0 中弃用,并将在以后的 MySQL 版本中删除。如需更多信息,请参阅 MySQL 文档。