You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Grafana MySQL数据源未使用指定密码,数据库连接失败

解决方案

1. 修复secureJsonData的密码加密问题

Grafana的secureJsonData字段要求密码为加密后的字符串,明文写入会被忽略,这是导致密码未传递、出现using password: NO的核心原因。执行以下步骤处理:

  • 进入Grafana容器:
    docker exec -it <你的Grafana容器名/ID> /bin/bash
    
  • 用grafana-cli加密密码:
    grafana-cli secrets encrypt "你的数据库密码"
    
  • 复制输出的加密字符串,替换配置文件中secureJsonData.password的明文内容。

2. 规范YAML配置格式

确保配置缩进严格符合YAML规范(建议用2个空格缩进),同时注意字段名的大小写:Grafana provisioning配置中标准连接地址字段为小写url,而非大写URL。正确配置示例:

- name: MySQL
  type: mysql
  url: <my_host>:3306
  database: csc648
  user: <user>
  isDefault: false
  secureJsonData:
    password: "加密后的密码字符串"
  jsonData:
    maxOpenConns: 0
    maxIdleConns: 2
    connMaxLifetime: 14400

3. 临时明文调试(仅限非生产环境)

若需快速验证是否为加密问题,可暂时将密码移至jsonData中(明文存储,生产环境禁用):

jsonData:
  password: "你的数据库密码"
  maxOpenConns: 0
  maxIdleConns: 2
  connMaxLifetime: 14400

移除原secureJsonData块后,重启Grafana测试连接。

4. 确认MySQL用户权限的主机匹配

执行MySQL查询,检查用户的主机授权条目:

SELECT user, host FROM mysql.user WHERE user='<user>';

确保存在'<user>'@'%'的条目,且无其他更严格的主机条目(如'<user>'@'localhost')导致权限匹配冲突。若有冲突,可删除多余条目或重新授权。

5. 检查Docker挂载的配置文件权限

若通过本地文件挂载到容器/etc/grafana/provisioning/datasources/路径,需确保文件权限为644,保证Grafana进程(用户grafana)可读取:

chmod 644 /本地路径/你的数据源配置.yaml

重启Grafana容器生效。


内容的提问来源于stack exchange,提问作者Vasek - Tom C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 16:55:42