菜单
文档breadcrumb arrow Grafana 文档breadcrumb arrow 数据源breadcrumb arrow MySQLbreadcrumb arrow 配置 MySQL 数据源
Grafana Cloud 企业版 开源 RSS

配置 MySQL 数据源

本文档提供了配置 MySQL 数据源的说明并解释了可用的配置选项。有关管理数据源的通用信息,请参阅 数据源管理

开始之前

您必须拥有 组织管理员 角色才能配置 MySQL 数据源。管理员还可以使用 Grafana 的配置系统通过 YAML 配置数据源。

Grafana 内置了 MySQL 插件,因此无需额外安装。

注意

添加数据源时,请确保您指定的数据库用户仅对相关数据库和表拥有 SELECT 权限。Grafana 不会验证查询的安全性,这意味着查询可能包含潜在有害的 SQL 语句,例如 USE otherdb;DROP TABLE user;,这些语句可能被执行。为了最大程度地降低此风险,强烈建议您创建一个具有受限权限的专用 MySQL 用户。

示例

sql
 CREATE USER 'grafanaReader' IDENTIFIED BY 'password';
 GRANT SELECT ON mydatabase.mytable TO 'grafanaReader';

如果您想授予对更多数据库和表的访问权限,请使用通配符(*)代替数据库或表。

添加 MySQL 数据源

要添加 MySQL 数据源,请完成以下步骤

  1. 点击左侧菜单中的 连接
  2. 点击 添加新连接 并在搜索栏中输入 MySQL
  3. 选择 MySQL 数据源 选项。
  4. 点击右上角的 添加新数据源

您将被带到 设置 选项卡,在那里您可以配置数据源。

MySQL 配置选项

以下是 MySQL 配置选项列表

  • 名称 - 设置您在面板和查询中引用数据源时使用的名称。例如:mysql-assets-1, mysqldb1
  • 默认 - 切换此选项可使此特定 MySQL 数据源成为面板和可视化中的默认预选数据源。

连接

  • 主机 URL - 输入您的 MySQL 实例的 IP 地址/主机名和可选端口。如果省略端口,将使用默认端口 3306。
  • 数据库 - 输入您的 MySQL 数据库名称。

身份验证

  • 用户名- 输入用于连接您的 MySQL 数据库的用户名。
  • 密码 - 输入用于连接 MySQL 数据库的密码。
  • 使用 TLS 客户端认证 - 切换此选项可启用使用安全 JSON 配置中指定的客户端证书进行 TLS 认证。有关 TLS 和在 MySQL 中配置加密连接的更多信息,请参阅 使用 TLS 连接配置 MySQL 使用加密连接。在 TLS/SSL 客户端证书 下提供客户端证书。在 TLS/SSL 客户端密钥 下提供密钥。
  • 带 CA 证书 - 切换此选项可使用 CA 证书进行认证。验证自签名 TLS 证书需要此选项。按照您的 CA(证书颁发机构)的说明下载证书文件。如果 TLS/SSL 模式需要,请在 TLS/SSL 根证书 下提供根证书。
  • 跳过 TLS 验证 - 切换此选项可跳过对 MySQL 服务器的 TLS 证书链和主机名的验证。
  • 允许明文密码 - 切换此选项可允许使用 明文客户端插件,当特定类型的账户需要时,例如使用 PAM 认证插件 定义的账户。请注意,在某些配置中,以明文传输密码可能构成安全风险。为防止密码相关问题,建议客户端使用保护密码的安全方法连接到 MySQL 服务器。选项包括 TLS/SSL、IPsec 或专用网络。

附加设置

以下是附加的 MySQL 设置。

MySQL 选项

  • 会话时区 - 指定数据库会话中使用的时区,例如 Europe/Berlin+02:00。如果数据库(或数据库主机)的时区设置为非 UTC,则需要此设置。将其设置为 +00:00,以便 Grafana 可以正确处理时间。使用 SET time_zone='...' 设置会话中使用的值。如果您留空此字段,将不会更新时区。有关更多信息,请参阅 MySQL Server Time Zone Support
  • 最小时间间隔 - 定义 $__interval$__interval_ms 变量的下限。Grafana 建议将此设置与数据写入频率对齐。例如,如果您的数据每分钟写入一次,则将其设置为 1m。有关格式示例,请参阅 最小时间间隔

连接限制

  • 最大开放连接数 - 到数据库的最大开放连接数,默认为 100
  • 最大空闲连接数 - 空闲连接池中的最大连接数,默认为 100
  • 自动 (最大空闲连接数) - 切换此选项可将最大空闲连接数设置为最大开放连接数。默认为 true
  • 最大生命周期 - 连接可被重用的最大秒数。这应始终低于 MySQL 中配置的 wait_timeout。默认为 14400 秒,即 4 小时。

私有数据源连接

私有数据源连接 - 仅适用于 Grafana Cloud 用户。 私有数据源连接(PDC)允许您在 Grafana Cloud 实例或堆栈与私有网络内受保护的数据源之间建立私密、安全的连接。点击下拉菜单查找 PDC 的 URL。有关 Grafana PDC 的更多信息,请参阅 私有数据源连接 (PDC)

点击 管理私有数据源连接 将跳转到您的 PDC 连接页面,在那里您可以找到您的 PDC 配置详细信息。

添加完 MySQL 连接设置后,点击 保存并测试 以测试并保存数据源连接。

最小时间间隔

最小时间间隔 设置定义了 $__interval$__interval_ms 变量的下限。

此值必须格式化为数字后跟有效时间标识符

标识符描述
y
M
w
d
h
m
s
ms毫秒

您可以在仪表盘面板的数据源选项中覆盖此设置。

配置数据源

您可以将数据源定义和配置在 YAML 文件中,作为 Grafana 配置系统的一部分。有关配置和可用配置选项的更多信息,请参阅 配置 Grafana

MySQL 配置示例

基本配置

yaml
apiVersion: 1

datasources:
  - name: MySQL
    type: mysql
    url: localhost:3306
    user: grafana
    jsonData:
      database: grafana
      maxOpenConns: 100
      maxIdleConns: 100
      maxIdleConnsAuto: true
      connMaxLifetime: 14400
    secureJsonData:
      password: ${GRAFANA_MYSQL_PASSWORD}

使用 TLS 验证

yaml
apiVersion: 1

datasources:
  - name: MySQL
    type: mysql
    url: localhost:3306
    user: grafana
    jsonData:
      tlsAuth: true
      database: grafana
      maxOpenConns: 100
      maxIdleConns: 100
      maxIdleConnsAuto: true
      connMaxLifetime: 14400
    secureJsonData:
      password: ${GRAFANA_MYSQL_PASSWORD}
      tlsClientCert: ${GRAFANA_TLS_CLIENT_CERT}
      tlsCACert: ${GRAFANA_TLS_CA_CERT}

使用 TLS 并跳过证书验证

yaml
apiVersion: 1

datasources:
  - name: MySQL
    type: mysql
    url: localhost:3306
    user: grafana
    jsonData:
      tlsAuth: true
      tlsSkipVerify: true
      database: grafana
      maxOpenConns: 100
      maxIdleConns: 100
      maxIdleConnsAuto: true
      connMaxLifetime: 14400
    secureJsonData:
      password: ${GRAFANA_MYSQL_PASSWORD}
      tlsClientCert: ${GRAFANA_TLS_CLIENT_CERT}
      tlsCACert: ${GRAFANA_TLS_CA_CERT}