Windows 安装与 Go 客户端示例

InfluxData Downloads 下载 Influx 数据库,Windows 下载链接 https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.5-windows.zip 。下载完成后解压缩即可通过命令行打开

首次启动后在 http://127.0.0.1:8086/ 完成初始化,示例中的 URL、组织、Bucket 和 Token 都是占位符。生产环境应启用 HTTPS,并通过环境变量或密钥管理系统提供 Token,不要将真实 Token 写入笔记或代码仓库。

$env:INFLUX_URL = "https://influx.example.com"
$env:INFLUX_TOKEN = "<token-from-secret-store>"

https://docs.influxdata.com/influxdb/v2/get-started/ InfluxDB 的官方站点

influxdata/influxdb-client-go: InfluxDB 2 Go Client (github.com) Go 的Influx 库地址

package main
 
import (
    "context"
    "fmt"
    "os"
    "time"
 
    "github.com/influxdata/influxdb-client-go/v2"
)
 
func main() {
    // 示例凭据仅作占位;生产环境请从环境变量或密钥管理系统读取,并优先使用 HTTPS。
    client := influxdb2.NewClient(os.Getenv("INFLUX_URL"), os.Getenv("INFLUX_TOKEN"))
    defer client.Close()
    // Use blocking write client for writes to desired bucket
    writeAPI := client.WriteAPIBlocking("my-org", "my-bucket")
    // Create point using full params constructor
    p := influxdb2.NewPoint("stat",
        map[string]string{"unit": "temperature"},
        map[string]interface{}{"avg": 24.5, "max": 45.0},
        time.Now())
    // write point immediately
    if err := writeAPI.WritePoint(context.Background(), p); err != nil {
        panic(err)
    }
    // Create point using fluent style
    p = influxdb2.NewPointWithMeasurement("stat").
        AddTag("unit", "temperature").
        AddField("avg", 23.2).
        AddField("max", 45.0).
        SetTime(time.Now())
    err := writeAPI.WritePoint(context.Background(), p)
	if err != nil {
		panic(err)
	}
    // Or write directly line protocol
    line := fmt.Sprintf("stat,unit=temperature avg=%f,max=%f", 23.5, 45.0)
    err = writeAPI.WriteRecord(context.Background(), line)
	if err != nil {
		panic(err)
	}
 
    // Get query client
    queryAPI := client.QueryAPI("my-org")
    // Get parser flux query result
    result, err := queryAPI.Query(context.Background(), `from(bucket:"my-bucket")|> range(start: -1h) |> filter(fn: (r) => r._measurement == "stat")`)
    if err == nil {
        // Use Next() to iterate over query result lines
        for result.Next() {
            // Observe when there is new grouping key producing new table
            if result.TableChanged() {
                fmt.Printf("table: %s\n", result.TableMetadata().String())
            }
            // read result
            fmt.Printf("row: %s\n", result.Record().String())
        }
        if result.Err() != nil {
            fmt.Printf("Query error: %s\n", result.Err().Error())
        }
    } else {
		panic(err)
    }
    // Ensures background processes finishes
    client.Close()
}

如何将 Influx 部署为 Windows 服务

https://www.123pan.com/s/gAEZVv-aXKeh.html 下载 nssm2.24 版本,用于将 Influxd 做成服务

执行 nssm install E:\influxdb\influxdb2-2.4.0\influxdb2_windows_amd64\influxd.exe 用上面的命令可以将指定位置的程序添加为系统服务 image.png

将 Influx 作为服务安装完成后,访问http://127.0.0.1:8086/开始配置数据库

image.png

image.png