文件

MySQL 通知設定

本頁說明將 MYSQL 服務設定為 儲存貯體通知目標的設定。請參閱 將事件發佈到 MySQL,以取得有關使用這些設定的教學課程。

您可以使用以下方式建立或修改設定:

  • 在啟動或重新啟動 MinIO 伺服器之前,在主機系統上定義環境變數。請參閱您作業系統的文件,以了解如何定義環境變數。

  • 使用 mc admin config set 使用組態設定

  • 使用 MinIO 主控台的 管理員 > 設定 頁面使用組態設定

如果您同時定義了環境變數和類似的組態設定,MinIO 會使用環境變數的值。

某些設定只有環境變數或組態設定,但沒有兩者都有。

重要

每個組態設定都控制著 MinIO 的基本行為和功能。MinIO 強烈建議在套用至生產環境之前,先在較低的環境(例如 DEV 或 QA)中測試組態變更。

多個 MYSQL 目標

您可以在頂層金鑰上附加每個相關 MySQL 設定集的唯一識別碼 _ID,以指定多個 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 服務端點的資料來源名稱 (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 組態關聯的註解。