配置 MySQL 数据源
本文档提供了配置 MySQL 数据源的说明并解释了可用的配置选项。有关管理数据源的通用信息,请参阅 数据源管理。
开始之前
您必须拥有 组织管理员
角色才能配置 MySQL 数据源。管理员还可以使用 Grafana 的配置系统通过 YAML 配置数据源。
Grafana 内置了 MySQL 插件,因此无需额外安装。
注意
添加数据源时,请确保您指定的数据库用户仅对相关数据库和表拥有
SELECT
权限。Grafana 不会验证查询的安全性,这意味着查询可能包含潜在有害的 SQL 语句,例如USE otherdb;
或DROP TABLE user;
,这些语句可能被执行。为了最大程度地降低此风险,强烈建议您创建一个具有受限权限的专用 MySQL 用户。
示例
CREATE USER 'grafanaReader' IDENTIFIED BY 'password';
GRANT SELECT ON mydatabase.mytable TO 'grafanaReader';
如果您想授予对更多数据库和表的访问权限,请使用通配符(*
)代替数据库或表。
添加 MySQL 数据源
要添加 MySQL 数据源,请完成以下步骤
- 点击左侧菜单中的 连接。
- 点击 添加新连接 并在搜索栏中输入
MySQL
。 - 选择 MySQL 数据源 选项。
- 点击右上角的 添加新数据源。
您将被带到 设置 选项卡,在那里您可以配置数据源。
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 配置示例
基本配置
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 验证
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 并跳过证书验证
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}