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

Docker-Compose部署下,Telegraf连接MySQL的[inputs.sql]DSN配置及故障修复

解决Telegraf连接Docker部署的MySQL时的连接拒绝问题
  • 用Docker服务名替代静态IP
    你使用的192.168.48.5是容器动态IP,重启后可能变化,且在docker-compose默认网络中,直接用MySQL的服务名(即docker-compose.yml里MySQL服务的名称,通常为mysql)作为地址更可靠。修正后的DSN示例:

    your_username:your_password@tcp(mysql)/your_db?parseTime=true
    

    注意parseTime=true是MySQL Go驱动必需参数,不可省略。

  • 确认Docker网络互通性
    三个服务通过docker-compose部署时默认会加入同一个自定义网络,先验证Telegraf容器能否访问MySQL服务:

    # 进入Telegraf容器
    docker-compose exec telegraf sh
    # 测试连接
    telnet mysql 3306
    

    若能连通说明网络正常;若不通,检查docker-compose.yml是否为所有服务配置了同一网络(如果手动指定了网络)。

  • 检查MySQL容器状态与配置

    1. 查看MySQL是否正常启动:
      docker-compose logs mysql
      
      查找日志中的ready for connections字样,确认服务运行正常。
    2. 确认MySQL的环境变量(如MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASE)与Telegraf DSN里的用户名、密码、库名完全一致。
  • 验证MySQL用户权限
    确保你的MySQL用户允许从Docker网络内任意地址访问,默认新建用户可能仅允许localhost登录。进入MySQL容器执行授权:

    docker-compose exec mysql mysql -u root -p
    # 替换占位符后执行授权命令
    GRANT ALL PRIVILEGES ON your_db.* TO 'your_username'@'%';
    FLUSH PRIVILEGES;
    

内容的提问来源于stack exchange,提问作者xmh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:01:23