文档

MySQL 通知设置

此页面记录将 MYSQL 服务配置为 存储桶通知 目标的设置。请参阅 将事件发布到 MySQL 以获取有关使用这些设置的教程。

您可以通过定义以下内容来建立或修改设置:

  • 在启动或重新启动 MinIO 服务器之前,在主机系统上定义一个环境变量。有关如何定义环境变量,请参阅您的操作系统的文档。

  • 使用 mc admin config set配置设置

  • 使用 MinIO 控制台的 管理员 > 设置 页面中的配置设置

如果您同时定义了环境变量和类似的配置设置,MinIO 将使用环境变量值。

某些设置只有环境变量或配置设置,但没有两者。

重要

每个配置设置都控制着 MinIO 的基本行为和功能。MinIO 强烈建议 在将配置更改应用于生产环境之前,在较低的环境(例如 DEV 或 QA)中进行测试。

多个 MYSQL 目标

您可以通过在顶层键上附加一个唯一的标识符 _ID 来指定多个 MySQL 服务端点,以用于每个相关 MySQL 设置的集合。

示例

以下命令将两个不同的 MySQL 服务端点分别设置为 PRIMARYSECONDARY

set MINIO_NOTIFY_MYSQL_ENABLE_PRIMARY="on"
set MINIO_NOTIFY_MYSQL_DSN_STRING_PRIMARY="username:password@tcp(mysql.example.com:3306)/miniodb"
set MINIO_NOTIFY_MYSQL_TABLE_PRIMARY="minioevents"
set MINIO_NOTIFY_MYSQL_FORMAT_PRIMARY="namespace"

set MINIO_NOTIFY_MYSQL_ENABLE_SECONDARY="on"
set MINIO_NOTIFY_MYSQL_DSN_STRING_SECONDARY="username:password@tcp(mysql.example.com:3306)/miniodb"
set MINIO_NOTIFY_MYSQL_TABLE_SECONDARY="minioevents"
set MINIO_NOTIFY_MYSQL_FORMAT_SECONDARY="namespace"

使用这些设置,MINIO_NOTIFY_MYSQL_ENABLE_PRIMARY 指示环境变量与 ID 为 PRIMARY 的 MySQL 服务端点相关联。

mc admin config set notify_mysql:primary \
   dsn_string="username:password@tcp(mysql.example.com:3306)/miniodb"
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

mc admin config set notify_mysql:secondary \
   dsn_string="username:password@tcp(mysql.example.com:3306)/miniodb"
   table="minioevents" \
   format="namespace" \
   [ARGUMENT=VALUE ...]

设置

启用

必需

MINIO_NOTIFY_MYSQL_ENABLE

指定 on 以启用将桶通知发布到 MySQL 服务端点。

默认为 off

如果设置为 on,则需要指定以下附加环境变量

notify_mysql

用于定义 MySQL 服务端点以用于 MinIO 桶通知 的顶级配置键。

使用 mc admin config set 设置或更新 MySQL 服务端点。每个目标都需要以下参数

将其他可选参数指定为以空格 (" ") 分隔的列表。

mc admin config set notify_mysql \
  dsn_string="username:password@tcp(mysql.example.com:3306)/miniodb"
  table="minioevents" \
  format="namespace" \
  [ARGUMENT="VALUE"] ... \

数据源名称 (DSN) 字符串

必需

MINIO_NOTIFY_MYSQL_DSN_STRING
notify_mysql dsn_string

指定 MySQL 服务端点的 Data Source Name (DSN)。MinIO 期望以下格式

<user>:<password>@tcp(<host>:<port>)/<database>

例如

"username:password@tcp(mysql.example.com:3306)/miniodb"

在版本 RELEASE.2023-05-27T05-56-19Z 中更改:MinIO 会在添加目标之前检查指定 URL 的运行状况(如果它可解析且可访问)。如果现有目标处于脱机状态,MinIO 不会再阻止添加新的通知目标。

必需

MINIO_NOTIFY_MYSQL_TABLE
notify_mysql table

指定 MinIO 发布事件通知的 MySQL 表的名称。

格式

必需

MINIO_NOTIFY_MYSQL_FORMAT
notify_mysql format

指定写入 MySQL 服务端点的事件数据的格式。MinIO 支持以下值

namespace

对于每个桶事件,MinIO 会创建一个 JSON 文档,其中包含事件中的桶和对象名称作为文档 ID,以及事件本身作为文档主体的一部分。对该对象的额外更新会修改该对象的现有表条目。类似地,删除对象也会删除相应的表条目。

access

对于每个桶事件,MinIO 会创建一个 JSON 文档,其中包含事件详细信息,并使用 MySQL 生成的随机 ID 将其追加到表中。对对象的额外更新会导致新的索引条目,而现有条目保持不变。

最大打开连接数

可选

MINIO_NOTIFY_MYSQL_MAX_OPEN_CONNECTIONS
notify_mysql max_open_connections

指定与 MySQL 数据库的打开连接的最大数量。

默认为 2

队列目录

可选

MINIO_NOTIFY_MYSQL_QUEUE_DIR
notify_mysql queue_dir

指定目录路径以启用 MinIO 的持久事件存储以存储未传递的消息,例如 /opt/minio/events

当 MySQL 服务器/代理脱机时,MinIO 会将未传递的事件存储在指定的存储中,并在连接恢复时重播存储的事件。

队列限制

可选

MINIO_NOTIFY_MYSQL_QUEUE_LIMIT
notify_mysql queue_limit

指定未传递消息的最大限制。默认为 100000

评论

可选

MINIO_NOTIFY_MYSQL_COMMENT
notify_mysql comment

指定与 MySQL 配置相关的注释。