---
title: InfluxDB configuration options
description: Customize your InfluxDB configuration by using influxd configuration flags, setting environment variables, or defining configuration options in a configuration file.
url: https://docs.influxdata.com/influxdb/v2/reference/config-options/
estimated_tokens: 52554
product: InfluxDB OSS v2
version: v2
---

# InfluxDB configuration options

This page documents an earlier version of InfluxDB OSS. [InfluxDB 3 Core](/influxdb3/core/) is the latest stable version.

#### API token hashing is enabled by default in InfluxDB OSS 2.9.0

Stronger token security: tokens are stored as hashes on disk, so a copy of the database file doesn’t expose usable tokens. Existing tokens are hashed on first startup and the original strings can’t be recovered afterward — **capture any plaintext tokens you still need before you upgrade**.

For more information, see [Token hashing](/influxdb/v2/admin/tokens/#token-hashing).

Customize your InfluxDB configuration by using [`influxd`](/influxdb/v2/reference/cli/influxd/) configuration flags, setting environment variables, or defining configuration options in a configuration file.

-   [View your runtime server configuration](#view-your-runtime-server-configuration)
-   [Configuration precedence](#configuration-precedence)
-   [InfluxDB configuration file](#influxdb-configuration-file)
-   [Configuration options](#configuration-options)

### View your runtime server configuration

Use the `influx` CLI or the InfluxDB API to get the runtime server configuration of your InfluxDB instance.

Server configuration commands require an [Operator token](/influxdb/v2/admin/tokens/#operator-token).

#### View your server configuration with the CLI

Use the [`influx server-config` command](/influxdb/v2/reference/cli/influx/server-config/) to retrieve your runtime server configuration.

```sh
influx server-config
```

### View your server configuration with the API

Use the `/api/v2/config` InfluxDB API endpoint to retrieve your runtime server configuration.

[GET http://localhost:8086/api/v2/config](/influxdb/v2/api/config/)

### Configuration precedence

InfluxDB honors configuration settings using the following precedence:

1. `influxd` flags
2. Environment variables
3. Configuration file settings

### InfluxDB configuration file

When `influxd` starts, it checks for a file named `config.*` **in the current working directory**. The file extension depends on the syntax of the configuration file. InfluxDB configuration files support the following syntaxes:

-   **YAML** (`.yaml`, `.yml`)
-   **TOML** (`.toml`)
-   **JSON** (`.json`)

To customize the directory path of the configuration file, set the `INFLUXD_CONFIG_PATH` environment variable to your custom path.

```sh
export INFLUXD_CONFIG_PATH=/path/to/custom/config/directory
```

On startup, `influxd` will check for a `config.*` in the `INFLUXD_CONFIG_PATH` directory.

##### Example configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yaml
query-concurrency: 20
query-queue-size: 15
secret-store: vault
session-length: 120
tls-cert: /path/to/influxdb.crt
tls-key: /path/to/influxdb.key
```

**TOML:**

```toml
query-concurrency = 20
query-queue-size = 15
secret-store = "vault"
session-length = 120
tls-cert = "/path/to/influxdb.crt"
tls-key = "/path/to/influxdb.key"
```

**JSON:**

```json
{
  "query-concurrency": 20,
  "query-queue-size": 15,
  "secret-store": "vault",
  "session-length": 120,
  "tls-cert": "/path/to/influxdb.crt",
  "tls-key": "/path/to/influxdb.key"
}
```

<!-- End tabbed content -->

Only non-default settings need to be defined in the configuration file.

## Configuration options

To configure InfluxDB, use the following configuration options when starting the [`influxd` service](/influxdb/v2/reference/cli/influxd):

-   [assets-path](#assets-path)
-   [bolt-path](#bolt-path)
-   [e2e-testing](#e2e-testing)
-   [engine-path](#engine-path)
-   [feature-flags](#feature-flags)
-   [flux-log-enabled](#flux-log-enabled)
-   [hardening-enabled](#hardening-enabled)
-   [http-bind-address](#http-bind-address)
-   [http-idle-timeout](#http-idle-timeout)
-   [http-read-header-timeout](#http-read-header-timeout)
-   [http-read-timeout](#http-read-timeout)
-   [http-write-timeout](#http-write-timeout)
-   [influxql-max-select-buckets](#influxql-max-select-buckets)
-   [influxql-max-select-point](#influxql-max-select-point)
-   [influxql-max-select-series](#influxql-max-select-series)
-   [instance-id](#instance-id)
-   [log-level](#log-level)
-   [metrics-disabled](#metrics-disabled)
-   [nats-max-payload-bytes](#nats-max-payload-bytes) *\- (deprecated)*
-   [nats-port](#nats-port) *\- (deprecated)*
-   [no-tasks](#no-tasks)
-   [overwrite-pid-file](#overwrite-pid-file)
-   [pid-file](#pid-file)
-   [pprof-disabled](#pprof-disabled)
-   [query-concurrency](#query-concurrency)
-   [query-initial-memory-bytes](#query-initial-memory-bytes)
-   [query-max-memory-bytes](#query-max-memory-bytes)
-   [query-memory-bytes](#query-memory-bytes)
-   [query-queue-size](#query-queue-size)
-   [reporting-disabled](#reporting-disabled)
-   [secret-store](#secret-store)
-   [session-length](#session-length)
-   [session-renew-disabled](#session-renew-disabled)
-   [sqlite-path](#sqlite-path)
-   [storage-cache-max-memory-size](#storage-cache-max-memory-size)
-   [storage-cache-snapshot-memory-size](#storage-cache-snapshot-memory-size)
-   [storage-cache-snapshot-write-cold-duration](#storage-cache-snapshot-write-cold-duration)
-   [storage-compact-full-write-cold-duration](#storage-compact-full-write-cold-duration)
-   [storage-compact-throughput-burst](#storage-compact-throughput-burst)
-   [storage-max-concurrent-compactions](#storage-max-concurrent-compactions)
-   [storage-max-index-log-file-size](#storage-max-index-log-file-size)
-   [storage-no-validate-field-size](#storage-no-validate-field-size)
-   [storage-retention-check-interval](#storage-retention-check-interval)
-   [storage-series-file-max-concurrent-snapshot-compactions](#storage-series-file-max-concurrent-snapshot-compactions)
-   [storage-series-id-set-cache-size](#storage-series-id-set-cache-size)
-   [storage-shard-precreator-advance-period](#storage-shard-precreator-advance-period)
-   [storage-shard-precreator-check-interval](#storage-shard-precreator-check-interval)
-   [storage-tsm-use-madv-willneed](#storage-tsm-use-madv-willneed)
-   [storage-validate-keys](#storage-validate-keys)
-   [storage-wal-fsync-delay](#storage-wal-fsync-delay)
-   [storage-wal-max-concurrent-writes](#storage-wal-max-concurrent-writes)
-   [storage-wal-max-write-delay](#storage-wal-max-write-delay)
-   [storage-write-timeout](#storage-write-timeout)
-   [store](#store)
-   [strong-passwords](#strong-passwords)
-   [testing-always-allow-setup](#testing-always-allow-setup)
-   [tls-cert](#tls-cert)
-   [tls-key](#tls-key)
-   [tls-min-version](#tls-min-version)
-   [tls-strict-ciphers](#tls-strict-ciphers)
-   [tracing-type](#tracing-type)
-   [ui-disabled](#ui-disabled)
-   [use-hashed-tokens](#use-hashed-tokens)
-   [vault-addr](#vault-addr)
-   [vault-cacert](#vault-cacert)
-   [vault-capath](#vault-capath)
-   [vault-client-cert](#vault-client-cert)
-   [vault-client-key](#vault-client-key)
-   [vault-client-timeout](#vault-client-timeout)
-   [vault-max-retries](#vault-max-retries)
-   [vault-skip-verify](#vault-skip-verify)
-   [vault-tls-server-name](#vault-tls-server-name)
-   [vault-token](#vault-token)

### assets-path

Override the default InfluxDB user interface (UI) assets by serving assets from the specified directory. *Typically, InfluxData internal use only.*

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --assets-path | INFLUXD_ASSETS_PATH | assets-path |

###### influxd flag

```sh
influxd --assets-path=/path/to/custom/assets-dir
```

###### Environment variable

```sh
export INFLUXD_ASSETS_PATH=/path/to/custom/assets-dir
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
assets-path: /path/to/custom/assets-dir
```

**TOML:**

```toml
assets-path = "/path/to/custom/assets-dir"
```

**JSON:**

```json
{
  "assets-path": "/path/to/custom/assets-dir"
}
```

<!-- End tabbed content -->

### bolt-path

Path to the [BoltDB](https://github.com/boltdb/bolt) database. BoltDB is a key value store written in Go. InfluxDB uses BoltDB to store data including organization and user information, UI data, REST resources, and other key value data.

**Default:** `~/.influxdbv2/influxd.bolt`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --bolt-path | INFLUXD_BOLT_PATH | bolt-path |

###### influxd flag

```sh
influxd --bolt-path=~/.influxdbv2/influxd.bolt
```

###### Environment variable

```sh
export INFLUXD_BOLT_PATH=~/.influxdbv2/influxd.bolt
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
bolt-path: ~/.influxdbv2/influxd.bolt
```

**TOML:**

```toml
bolt-path = "~/.influxdbv2/influxd.bolt"
```

**JSON:**

```json
{
  "bolt-path": "~/.influxdbv2/influxd.bolt"
}
```

<!-- End tabbed content -->

### e2e-testing

Add a `/debug/flush` endpoint to the InfluxDB HTTP API to clear stores. InfluxData uses this endpoint in end-to-end testing.

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --e2e-testing | INFLUXD_E2E_TESTING | e2e-testing |

###### influxd flag

```sh
influxd --e2e-testing
```

###### Environment variable

```sh
export INFLUXD_E2E_TESTING=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
e2e-testing: true
```

**TOML:**

```toml
e2e-testing = true
```

**JSON:**

```json
{
  "e2e-testing": true
}
```

<!-- End tabbed content -->

### engine-path

Path to persistent storage engine files where InfluxDB stores all Time-Structure Merge Tree (TSM) data on disk.

**Default:** `~/.influxdbv2/engine`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --engine-path | INFLUXD_ENGINE_PATH | engine-path |

###### influxd flag

```sh
influxd --engine-path=~/.influxdbv2/engine
```

###### Environment variable

```sh
export INFLUXD_ENGINE_PATH=~/.influxdbv2/engine
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
engine-path: ~/.influxdbv2/engine
```

**TOML:**

```toml
engine-path = "~/.influxdbv2/engine"
```

**JSON:**

```json
{
  "engine-path": "~/.influxdbv2/engine"
}
```

<!-- End tabbed content -->

### feature-flags

Enable, disable, or override default values for feature flags.

Feature flags are used to develop and test experimental features and are intended for internal use only.

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --feature-flags | INFLUXD_FEATURE_FLAGS | feature-flags |

###### influxd flag

```sh
influxd --feature-flags flag1=value2,flag2=value2
```

###### Environment variable

```sh
export INFLUXD_FEATURE_FLAGS="{\"flag1\":\value1\",\"flag2\":\"value2\"}"
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
feature-flags:
  flag1: "value1"
  flag2: "value2"
```

**TOML:**

```toml
[feature-flags]
  flag1 = "value1"
  glag2 = "value2"
```

**JSON:**

```json
{
  "feature-flags": {
    "flag1": "value1",
    "flag2": "value2"
  }
}
```

<!-- End tabbed content -->

### flux-log-enabled

Include option to show detailed logs for Flux queries, including the following log fields:

-   `compiler_type`: Compiler used for processing the query (will always be Flux).
-   `response_size`: Size of the response, in bytes.
-   `query`: The textual representation of the query.
-   `err`: Errors encountered while processing the query.
-   `stat_total_duration`: Total duration to process the query.
-   `stat_compile_duration`: Duration to compile the query.
-   `stat_execute_duration`: Duration to execute the query.
-   `stat_max_allocated`: Maximum amount of memory allocated while processing the query, in - bytes.
-   `stat_total_allocated`: Total amount of memory allocated while processing the query, in bytes. This includes memory that was freed and then used again.

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --flux-log-enabled | INFLUXD_FLUX_LOG_ENABLED | flux-log-enabled |

###### influxd flag

```sh
influxd --flux-log-enabled
```

###### Environment variable

```sh
export INFLUXD_FLUX_LOG_ENABLED=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
flux-log-enabled: true
```

**TOML:**

```toml
flux-log-enabled = "true"
```

**JSON:**

```json
{
  "flux-log-enabled": "true"
}
```

<!-- End tabbed content -->

### hardening-enabled

Enable [additional security features](/influxdb/v2/admin/security/enable-hardening/) in InfluxDB. **Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --hardening-enabled | INFLUXD_HARDENING_ENABLED | hardening-enabled |

###### influxd flag

```sh
influxd --hardening-enabled
```

###### Environment variable

```sh
export INFLUXD_HARDENING_ENABLED=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
hardening-enabled: true
```

**TOML:**

```toml
hardening-enabled = true
```

**JSON:**

```json
{
  "hardening-enabled": true
}
```

<!-- End tabbed content -->

### http-bind-address

Bind address for the InfluxDB HTTP API. Customize the URL and port for the InfluxDB API and UI.

**Default:** `:8086`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --http-bind-address | INFLUXD_HTTP_BIND_ADDRESS | http-bind-address |

###### influxd flag

```sh
influxd --http-bind-address=:8086
```

###### Environment variable

```sh
export INFLUXD_HTTP_BIND_ADDRESS=:8086
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
http-bind-address: ":8086"
```

**TOML:**

```toml
http-bind-address = ":8086"
```

**JSON:**

```json
{
  "http-bind-address": ":8086"
}
```

<!-- End tabbed content -->

### http-idle-timeout

Maximum duration the server should keep established connections alive while waiting for new requests. Set to `0` for no timeout.

**Default:** `3m0s`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --http-idle-timeout | INFLUXD_HTTP_IDLE_TIMEOUT | http-idle-timeout |

###### influxd flag

```sh
influxd --http-idle-timeout=3m0s
```

###### Environment variable

```sh
export INFLUXD_HTTP_IDLE_TIMEOUT=3m0s
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
http-idle-timeout: 3m0s
```

**TOML:**

```toml
http-idle-timeout = "3m0s"
```

**JSON:**

```json
{
  "http-idle-timeout": "3m0s"
}
```

<!-- End tabbed content -->

### http-read-header-timeout

Maximum duration the server should try to read HTTP headers for new requests. Set to `0` for no timeout.

**Default:** `10s`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --http-read-header-timeout | INFLUXD_HTTP_READ_HEADER_TIMEOUT | http-read-header-timeout |

###### influxd flag

```sh
influxd --http-read-header-timeout=10s
```

###### Environment variable

```sh
export INFLUXD_HTTP_READ_HEADER_TIMEOUT=10s
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
http-read-header-timeout: 10s
```

**TOML:**

```toml
http-read-header-timeout = "10s"
```

**JSON:**

```json
{
  "http-read-header-timeout": "10s"
}
```

<!-- End tabbed content -->

### http-read-timeout

Maximum duration the server should try to read the entirety of new requests. Set to `0` for no timeout.

**Default:** `0`

#### Set timeouts specific to your workload

Although no `http-read-timeout` is set by default, we **strongly recommend** setting a timeout specific to your workload. HTTP timeouts protect against large amounts of open connections that could potentially hurt performance.

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --http-read-timeout | INFLUXD_HTTP_READ_TIMEOUT | http-read-timeout |

###### influxd flag

```sh
influxd --http-read-timeout=10s
```

###### Environment variable

```sh
export INFLUXD_HTTP_READ_TIMEOUT=10s
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
http-read-timeout: 10s
```

**TOML:**

```toml
http-read-timeout = "10s"
```

**JSON:**

```json
{
  "http-read-timeout": "10s"
}
```

<!-- End tabbed content -->

### http-write-timeout

Maximum duration to wait before timing out writes of the response. It doesn’t let Handlers decide the duration on a per-request basis.

The timeout is reset when a new request’s header is read.

Set to `0` for no timeout.

**Default:** `0`

#### Set timeouts specific to your workload

Although no `http-write-timeout` is set by default, we **strongly recommend** setting a timeout specific to your workload. HTTP timeouts protect against large amounts of open connections that could potentially hurt performance.

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --http-write-timeout | INFLUXD_HTTP_WRITE_TIMEOUT | http-write-timeout |

###### influxd flag

```sh
influxd --http-write-timeout=10s
```

###### Environment variable

```sh
export INFLUXD_HTTP_WRITE_TIMEOUT=10s
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
http-write-timeout: 10s
```

**TOML:**

```toml
http-write-timeout = "10s"
```

**JSON:**

```json
{
  "http-write-timeout": "10s"
}
```

<!-- End tabbed content -->

### influxql-max-select-buckets

Maximum number of group by time buckets a `SELECT` statement can create. `0` allows an unlimited number of buckets.

**Default:** `0`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --influxql-max-select-buckets | INFLUXD_INFLUXQL_MAX_SELECT_BUCKETS | influxql-max-select-buckets |

###### influxd flag

```sh
influxd --influxql-max-select-buckets=0
```

###### Environment variable

```sh
export INFLUXD_INFLUXQL_MAX_SELECT_BUCKETS=0
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
influxql-max-select-buckets: 0
```

**TOML:**

```toml
influxql-max-select-buckets = 0
```

**JSON:**

```json
{
  "influxql-max-select-buckets": 0
}
```

<!-- End tabbed content -->

### influxql-max-select-point

Maximum number of points a `SELECT` statement can process. `0` allows an unlimited number of points. InfluxDB checks the point count every second (so queries exceeding the maximum aren’t immediately aborted).

**Default:** `0`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --influxql-max-select-point | INFLUXD_INFLUXQL_MAX_SELECT_POINT | influxql-max-select-point |

###### influxd flag

```sh
influxd --influxql-max-select-point=0
```

###### Environment variable

```sh
export INFLUXD_INFLUXQL_MAX_SELECT_POINT=0
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
influxql-max-select-point: 0
```

**TOML:**

```toml
influxql-max-select-point = 0
```

**JSON:**

```json
{
  "influxql-max-select-point": 0
}
```

<!-- End tabbed content -->

### influxql-max-select-series

Maximum number of series a `SELECT` statement can return. `0` allows an unlimited number of series.

**Default:** `0`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --influxql-max-select-series | INFLUXD_INFLUXQL_MAX_SELECT_SERIES | influxql-max-select-series |

###### influxd flag

```sh
influxd --influxql-max-select-series=0
```

###### Environment variable

```sh
export INFLUXD_INFLUXQL_MAX_SELECT_SERIES=0
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
influxql-max-select-series: 0
```

**TOML:**

```toml
influxql-max-select-series = 0
```

**JSON:**

```json
{
  "influxql-max-select-series": 0
}
```

<!-- End tabbed content -->

### instance-id

Identifies edge nodes during replication, and prevents collisions if two edge nodes write the same `measurement,tagset`.

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --instance-id | INFLUXD_INSTANCE_ID | instance-id |

###### influxd flag

```sh
influxd --instance-id=:8086
```

###### Environment variable

```sh
export INFLUXD_INSTANCE_ID=:8086
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
instance-id: ":8086"
```

**TOML:**

```toml
instance-id = ":8086"
```

**JSON:**

```json
{
  "instance-id": ":8086"
}
```

<!-- End tabbed content -->

### log-level

Log output level. InfluxDB outputs log entries with severity levels greater than or equal to the level specified.

**Options:** `debug`, `info`, `error`  
**Default:** `info`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --log-level | INFLUXD_LOG_LEVEL | log-level |

###### influxd flag

```sh
influxd --log-level=info
```

###### Environment variable

```sh
export INFLUXD_LOG_LEVEL=info
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
log-level: info
```

**TOML:**

```toml
log-level = "info"
```

**JSON:**

```json
{
  "log-level": "info"
}
```

<!-- End tabbed content -->

### metrics-disabled

Disable the HTTP `/metrics` endpoint which exposes [internal InfluxDB metrics](/influxdb/v2/reference/internals/metrics/).

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --metrics-disabled | INFLUXD_METRICS_DISABLED | metrics-disabled |

###### influxd flag

```sh
influxd --metrics-disabled
```

###### Environment variable

```sh
export INFLUXD_METRICS_DISABLED=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
metrics-disabled: true
```

**TOML:**

```toml
metrics-disabled = true
```

**JSON:**

```json
{
  "metrics-disabled": true
}
```

<!-- End tabbed content -->

### nats-max-payload-bytes

`nats-max-payload-bytes` was **deprecated in InfluxDB 2.2** and no longer has any effect.

Maximum number of bytes allowed in a NATS message payload.

**Default:** `1048576`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --nats-max-payload-bytes | INFLUXD_NATS_MAX_PAYLOAD_BYTES | nats-max-payload-bytes |

###### influxd flag

```sh
influxd --nats-max-payload-bytes=1048576
```

###### Environment variable

```sh
export INFLUXD_NATS_MAX_PAYLOAD_BYTES=1048576
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
nats-max-payload-bytes: 1048576
```

**TOML:**

```toml
nats-max-payload-bytes = 1048576
```

**JSON:**

```json
{
  "nats-max-payload-bytes": 1048576
}
```

<!-- End tabbed content -->

### nats-port

`nats-port` was **deprecated in InfluxDB 2.2** and no longer has any effect.

Port for the NATS streaming server. `-1` selects a random port.

**Default:** `-1`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --nats-port | INFLUXD_NATS_PORT | nats-port |

###### influxd flag

```sh
influxd --nats-port=-1
```

###### Environment variable

```sh
export INFLUXD_NATS_PORT=-1
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
nats-port: -1
```

**TOML:**

```toml
nats-port = -1
```

**JSON:**

```json
{
  "nats-port": -1
}
```

<!-- End tabbed content -->

### no-tasks

Disable the task scheduler. If problematic tasks prevent InfluxDB from starting, use this option to start InfluxDB without scheduling or executing tasks.

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --no-tasks | INFLUXD_NO_TASKS | no-tasks |

###### influxd flag

```sh
influxd --no-tasks
```

###### Environment variable

```sh
export INFLUXD_NO_TASKS=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
no-tasks: true
```

**TOML:**

```toml
no-tasks = true
```

**JSON:**

```json
{
  "no-tasks": true
}
```

<!-- End tabbed content -->

### overwrite-pid-file

Overwrite the PID file specified by [pid-file](#pid-file) if it exists, instead of exiting with an error.

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --overwrite-pid-file | INFLUXD_OVERWRITE_PID_FILE | overwrite-pid-file |

###### influxd flag

```sh
influxd --overwrite-pid-file
```

###### Environment variable

```sh
export INFLUXD_OVERWRITE_PID_FILE=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
overwrite-pid-file: true
```

**TOML:**

```toml
overwrite-pid-file = true
```

**JSON:**

```json
{
  "overwrite-pid-file": true
}
```

<!-- End tabbed content -->

### pid-file

Write the PID file to the specified path and remove it when InfluxDB stops.

**Default:** \`\`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --pid-file | INFLUXD_PID_FILE | pid-file |

###### influxd flag

```sh
influxd --pid-file /path/to/pid-file
```

###### Environment variable

```sh
export INFLUXD_PID_FILE=/path/to/pid-file
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
pid-file: /path/to/pid-file
```

**TOML:**

```toml
pid-file = "/path/to/pid-file"
```

**JSON:**

```json
{
  "pid-file": "/path/to/pid-file"
}
```

<!-- End tabbed content -->

### pprof-disabled

Disable the `/debug/pprof` HTTP endpoint. This endpoint provides runtime profiling data and can be helpful when debugging.

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --pprof-disabled | INFLUXD_PPROF_DISABLED | pprof-disabled |

###### influxd flag

```sh
influxd --pprof-disabled
```

###### Environment variable

```sh
export INFLUXD_PPROF_DISABLED=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
pprof-disabled: true
```

**TOML:**

```toml
pprof-disabled = true
```

**JSON:**

```json
{
  "pprof-disabled": true
}
```

<!-- End tabbed content -->

### query-concurrency

Number of queries allowed to execute concurrently. Setting to `0` allows an unlimited number of concurrent queries.

**Default:** `0`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --query-concurrency | INFLUXD_QUERY_CONCURRENCY | query-concurrency |

###### influxd flag

```sh
influxd --query-concurrency=10
```

###### Environment variable

```sh
export INFLUXD_QUERY_CONCURRENCY=10
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
query-concurrency: 10
```

**TOML:**

```toml
query-concurrency = 10
```

**JSON:**

```json
{
  "query-concurrency": 10
}
```

<!-- End tabbed content -->

### query-initial-memory-bytes

Initial bytes of memory allocated for a query.

**Default:** *equal to* [query-memory-bytes](#query-memory-bytes)

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --query-initial-memory-bytes | INFLUXD_QUERY_INITIAL_MEMORY_BYTES | query-initial-memory-bytes |

###### influxd flag

```sh
influxd --query-initial-memory-bytes=10485760
```

###### Environment variable

```sh
export INFLUXD_QUERY_INITIAL_MEMORY_BYTES=10485760
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
query-initial-memory-bytes: 10485760
```

**TOML:**

```toml
query-initial-memory-bytes = 10485760
```

**JSON:**

```json
{
  "query-initial-memory-bytes": 10485760
}
```

<!-- End tabbed content -->

### query-max-memory-bytes

Maximum total bytes of memory allowed for queries.

**Default:** *equal to* [query-concurrency](#query-concurrency) × [query-memory-bytes](#query-memory-bytes)

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --query-max-memory-bytes | INFLUXD_QUERY_MAX_MEMORY_BYTES | query-max-memory-bytes |

###### influxd flag

```sh
influxd --query-max-memory-bytes=104857600
```

###### Environment variable

```sh
export INFLUXD_QUERY_MAX_MEMORY_BYTES=104857600
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
query-max-memory-bytes: 104857600
```

**TOML:**

```toml
query-max-memory-bytes = 104857600
```

**JSON:**

```json
{
  "query-max-memory-bytes": 104857600
}
```

<!-- End tabbed content -->

### query-memory-bytes

Maximum bytes of memory allowed for a single query.

**Default:** *unlimited*

Must be greater than or equal to [query-initial-memory-bytes](#query-initial-memory-bytes).

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --query-memory-bytes | INFLUXD_QUERY_MEMORY_BYTES | query-memory-bytes |

###### influxd flag

```sh
influxd --query-memory-bytes=10485760
```

###### Environment variable

```sh
export INFLUXD_QUERY_MEMORY_BYTES=10485760
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
query-memory-bytes: 10485760
```

**TOML:**

```toml
query-memory-bytes = 10485760
```

**JSON:**

```json
{
  "query-memory-bytes": 10485760
}
```

<!-- End tabbed content -->

### query-queue-size

Maximum number of queries allowed in execution queue. When queue limit is reached, new queries are rejected. Setting to `0` allows an unlimited number of queries in the queue.

**Default:** `0`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --query-queue-size | INFLUXD_QUERY_QUEUE_SIZE | query-queue-size |

###### influxd flag

```sh
influxd --query-queue-size=10
```

###### Environment variable

```sh
export INFLUXD_QUERY_QUEUE_SIZE=10
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
query-queue-size: 10
```

**TOML:**

```toml
query-queue-size = 10
```

**JSON:**

```json
{
  "query-queue-size": 10
}
```

<!-- End tabbed content -->

### reporting-disabled

Disables sending telemetry data to InfluxData. The [InfluxData telemetry](https://www.influxdata.com/telemetry) page provides information about what data is collected and how InfluxData uses it.

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --reporting-disabled | INFLUXD_REPORTING_DISABLED | reporting-disabled |

###### influxd flag

```sh
influxd --reporting-disabled
```

###### Environment variable

```sh
export INFLUXD_REPORTING_DISABLED=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
reporting-disabled: true
```

**TOML:**

```toml
reporting-disabled = true
```

**JSON:**

```json
{
  "reporting-disabled": true
}
```

<!-- End tabbed content -->

### secret-store

Specifies the data store for secrets such as passwords and tokens. Store secrets in either the InfluxDB [internal BoltDB](#bolt-path) or in [Vault](https://www.vaultproject.io/).

**Options:** `bolt`, `vault`  
**Default:** `bolt`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --secret-store | INFLUXD_SECRET_STORE | secret-store |

###### influxd flag

```sh
influxd --secret-store=bolt
```

###### Environment variable

```sh
export INFLUXD_SECRET_STORE=bolt
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
secret-store: bolt
```

**TOML:**

```toml
secret-store = "bolt"
```

**JSON:**

```json
{
  "secret-store": "bolt"
}
```

<!-- End tabbed content -->

### session-length

Specifies the Time to Live (TTL) **in minutes** for newly created user sessions.

**Default:** `60`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --session-length | INFLUXD_SESSION_LENGTH | session-length |

###### influxd flag

```sh
influxd --session-length=60
```

###### Environment variable

```sh
export INFLUXD_SESSION_LENGTH=60
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
session-length: 60
```

**TOML:**

```toml
session-length = 60
```

**JSON:**

```json
{
  "session-length": 60
}
```

<!-- End tabbed content -->

### session-renew-disabled

Disables automatically extending a user’s session TTL on each request. By default, every request sets the session’s expiration time to five minutes from now. When disabled, sessions expire after the specified [session length](#session-length) and the user is redirected to the login page, even if recently active.

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --session-renew-disabled | INFLUXD_SESSION_RENEW_DISABLED | session-renew-disabled |

###### influxd flag

```sh
influxd --session-renew-disabled
```

###### Environment variable

```sh
export INFLUXD_SESSION_RENEW_DISABLED=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
session-renew-disabled: true
```

**TOML:**

```toml
session-renew-disabled = true
```

**JSON:**

```json
{
  "session-renew-disabled": true
}
```

<!-- End tabbed content -->

### sqlite-path

Path to the SQLite database file. The SQLite database is used to store metadata for notebooks and annotations.

**Default:** *`influxd.sqlite` in the same directory as the [bolt-path](#bolt-path).*

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --sqlite-path | INFLUXD_SQLITE_PATH | sqlite-path |

###### influxd flag

```sh
influxd --sqlite-path ~/.influxdbv2/influxd.sqlite
```

###### Environment variable

```sh
export INFLUXD_SQLITE_PATH=~/.influxdbv2/influxd.sqlite
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
sqlite-path: ~/.influxdbv2/influxd.sqlite
```

**TOML:**

```toml
sqlite-path = "~/.influxdbv2/influxd.sqlite"
```

**JSON:**

```json
{
  "sqlite-path": "~/.influxdbv2/influxd.sqlite"
}
```

<!-- End tabbed content -->

### storage-cache-max-memory-size

Maximum size (in bytes) a shard’s cache can reach before it starts rejecting writes.

**Default:** `1073741824`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-cache-max-memory-size | INFLUXD_STORAGE_CACHE_MAX_MEMORY_SIZE | storage-cache-max-memory-size |

###### influxd flag

```sh
influxd --storage-cache-max-memory-size=1073741824
```

###### Environment variable

```sh
export INFLUXD_STORAGE_CACHE_MAX_MEMORY_SIZE=1073741824
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-cache-max-memory-size: 1073741824
```

**TOML:**

```toml
storage-cache-max-memory-size = 1073741824
```

**JSON:**

```json
{
  "storage-cache-max-memory-size": 1073741824
}
```

<!-- End tabbed content -->

### storage-cache-snapshot-memory-size

Size (in bytes) at which the storage engine will snapshot the cache and write it to a TSM file to make more memory available.

**Default:** `26214400`)

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-cache-snapshot-memory-size | INFLUXD_STORAGE_CACHE_SNAPSHOT_MEMORY_SIZE | storage-cache-snapshot-memory-size |

###### influxd flag

```sh
influxd --storage-cache-snapshot-memory-size=26214400
```

###### Environment variable

```sh
export INFLUXD_STORAGE_CACHE_SNAPSHOT_MEMORY_SIZE=26214400
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-cache-snapshot-memory-size: 26214400
```

**TOML:**

```toml
storage-cache-snapshot-memory-size = 26214400
```

**JSON:**

```json
{
  "storage-cache-snapshot-memory-size": 26214400
}
```

<!-- End tabbed content -->

### storage-cache-snapshot-write-cold-duration

Duration at which the storage engine will snapshot the cache and write it to a new TSM file if the shard hasn’t received writes or deletes.

**Default:** `10m0s`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-cache-snapshot-write-cold-duration | INFLUXD_STORAGE_CACHE_SNAPSHOT_WRITE_COLD_DURATION | storage-cache-snapshot-write-cold-duration |

###### influxd flag

```sh
influxd --storage-cache-snapshot-write-cold-duration=10m0s
```

###### Environment variable

```sh
export INFLUXD_STORAGE_CACHE_SNAPSHOT_WRITE_COLD_DURATION=10m0s
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-cache-snapshot-write-cold-duration: 10m0s
```

**TOML:**

```toml
storage-cache-snapshot-write-cold-duration = "10m0s"
```

**JSON:**

```json
{
  "storage-cache-snapshot-write-cold-duration": "10m0s"
}
```

<!-- End tabbed content -->

### storage-compact-full-write-cold-duration

Duration at which the storage engine will compact all TSM files in a shard if it hasn’t received writes or deletes.

**Default:** `4h0m0s`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-compact-full-write-cold-duration | INFLUXD_STORAGE_COMPACT_FULL_WRITE_COLD_DURATION | storage-compact-full-write-cold-duration |

###### influxd flag

```sh
influxd --storage-compact-full-write-cold-duration=4h0m0s
```

###### Environment variable

```sh
export INFLUXD_STORAGE_COMPACT_FULL_WRITE_COLD_DURATION=4h0m0s
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-compact-full-write-cold-duration: 4h0m0s
```

**TOML:**

```toml
storage-compact-full-write-cold-duration = "4h0m0s"
```

**JSON:**

```json
{
  "storage-compact-full-write-cold-duration": "4h0m0s"
}
```

<!-- End tabbed content -->

### storage-compact-throughput-burst

Rate limit (in bytes per second) that TSM compactions can write to disk.

**Default:** `50331648`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-compact-throughput-burst | INFLUXD_STORAGE_COMPACT_THROUGHPUT_BURST | storage-compact-throughput-burst |

###### influxd flag

```sh
influxd --storage-compact-throughput-burst=50331648
```

###### Environment variable

```sh
export INFLUXD_STORAGE_COMPACT_THROUGHPUT_BURST=50331648
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-compact-throughput-burst: 50331648
```

**TOML:**

```toml
storage-compact-throughput-burst = 50331648
```

**JSON:**

```json
{
  "storage-compact-throughput-burst": 50331648
}
```

<!-- End tabbed content -->

### storage-max-concurrent-compactions

Maximum number of full and level compactions that can run concurrently. A value of `0` results in 50% of `runtime.GOMAXPROCS(0)` used at runtime. Any number greater than zero limits compactions to that value. *This setting does not apply to cache snapshotting.*

**Default:** `0`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-max-concurrent-compactions | INFLUXD_STORAGE_MAX_CONCURRENT_COMPACTIONS | storage-max-concurrent-compactions |

###### influxd flag

```sh
influxd --storage-max-concurrent-compactions=0
```

###### Environment variable

```sh
export INFLUXD_STORAGE_MAX_CONCURRENT_COMPACTIONS=0
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-max-concurrent-compactions: 0
```

**TOML:**

```toml
storage-max-concurrent-compactions = 0
```

**JSON:**

```json
{
  "storage-max-concurrent-compactions": 0
}
```

<!-- End tabbed content -->

### storage-max-index-log-file-size

Size (in bytes) at which an index write-ahead log (WAL) file will compact into an index file. Lower sizes will cause log files to be compacted more quickly and result in lower heap usage at the expense of write throughput.

**Default:** `1048576`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-max-index-log-file-size | INFLUXD_STORAGE_MAX_INDEX_LOG_FILE_SIZE | storage-max-index-log-file-size |

###### influxd flag

```sh
influxd --storage-max-index-log-file-size=1048576
```

###### Environment variable

```sh
export INFLUXD_STORAGE_MAX_INDEX_LOG_FILE_SIZE=1048576
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-max-index-log-file-size: 1048576
```

**TOML:**

```toml
storage-max-index-log-file-size = 1048576
```

**JSON:**

```json
{
  "storage-max-index-log-file-size": 1048576
}
```

<!-- End tabbed content -->

### storage-no-validate-field-size

Skip field size validation on incoming write requests.

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-no-validate-field-size | INFLUXD_STORAGE_NO_VALIDATE_FIELD_SIZE | storage-no-validate-field-size |

###### influxd flag

```sh
influxd --storage-no-validate-field-size
```

###### Environment variable

```sh
export INFLUXD_STORAGE_NO_VALIDATE_FIELD_SIZE=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-no-validate-field-size: true
```

**TOML:**

```toml
storage-no-validate-field-size = true
```

**JSON:**

```json
{
  "storage-no-validate-field-size": true
}
```

<!-- End tabbed content -->

### storage-retention-check-interval

Interval of retention policy enforcement checks.

**Default:** `30m0s`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-retention-check-interval | INFLUXD_STORAGE_RETENTION_CHECK_INTERVAL | storage-retention-check-interval |

###### influxd flag

```sh
influxd --storage-retention-check-interval=30m0s
```

###### Environment variable

```sh
export INFLUXD_STORAGE_RETENTION_CHECK_INTERVAL=30m0s
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-retention-check-interval: 30m0s
```

**TOML:**

```toml
storage-retention-check-interval = "30m0s"
```

**JSON:**

```json
{
  "storage-retention-check-interval": "30m0s"
}
```

<!-- End tabbed content -->

### storage-series-file-max-concurrent-snapshot-compactions

Maximum number of snapshot compactions that can run concurrently across all series partitions in a database.

**Default:** `0`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-series-file-max-concurrent-snapshot-compactions | INFLUXD_STORAGE_SERIES_FILE_MAX_CONCURRENT_SNAPSHOT_COMPACTIONS | storage-series-file-max-concurrent-snapshot-compactions |

###### influxd flag

```sh
influxd --storage-series-file-max-concurrent-snapshot-compactions=0
```

###### Environment variable

```sh
export INFLUXD_STORAGE_SERIES_FILE_MAX_CONCURRENT_SNAPSHOT_COMPACTIONS=0
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-series-file-max-concurrent-snapshot-compactions: 0
```

**TOML:**

```toml
storage-series-file-max-concurrent-snapshot-compactions = 0
```

**JSON:**

```json
{
  "storage-series-file-max-concurrent-snapshot-compactions": 0
}
```

<!-- End tabbed content -->

### storage-series-id-set-cache-size

Size of the internal cache used in the TSI index to store previously calculated series results. Cached results are returned quickly rather than needing to be recalculated when a subsequent query with the same tag key/value predicate is executed. Setting this value to `0` will disable the cache and may decrease query performance.

**Default:** `100`

This value should only be increased if the set of regularly used tag key/value predicates across all measurements for a database is larger than 100. An increase in cache size may lead to an increase in heap usage.

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-series-id-set-cache-size | INFLUXD_STORAGE_SERIES_ID_SET_CACHE_SIZE | storage-series-id-set-cache-size |

###### influxd flag

```sh
influxd --storage-series-id-set-cache-size=100
```

###### Environment variable

```sh
export INFLUXD_STORAGE_SERIES_ID_SET_CACHE_SIZE=100
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-series-id-set-cache-size: 100
```

**TOML:**

```toml
storage-series-id-set-cache-size = 100
```

**JSON:**

```json
{
  "storage-series-id-set-cache-size": 100
}
```

<!-- End tabbed content -->

### storage-shard-precreator-advance-period

The time before a shard group’s end-time that the successor shard group is created.

**Default:** `30m0s`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-shard-precreator-advance-period | INFLUXD_STORAGE_SHARD_PRECREATOR_ADVANCE_PERIOD | storage-shard-precreator-advance-period |

###### influxd flag

```sh
influxd --storage-shard-precreator-advance-period=30m0s
```

###### Environment variable

```sh
export INFLUXD_STORAGE_SHARD_PRECREATOR_ADVANCE_PERIOD=30m0s
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-shard-precreator-advance-period: 30m0s
```

**TOML:**

```toml
storage-shard-precreator-advance-period = "30m0s"
```

**JSON:**

```json
{
  "storage-shard-precreator-advance-period": "30m0s"
}
```

<!-- End tabbed content -->

### storage-shard-precreator-check-interval

Interval of pre-create new shards check.

**Default:** `10m0s`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-shard-precreator-check-interval | INFLUXD_STORAGE_SHARD_PRECREATOR_CHECK_INTERVAL | storage-shard-precreator-check-interval |

###### influxd flag

```sh
influxd --storage-shard-precreator-check-interval=10m0s
```

###### Environment variable

```sh
export INFLUXD_STORAGE_SHARD_PRECREATOR_CHECK_INTERVAL=10m0s
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-shard-precreator-check-interval: 10m0s
```

**TOML:**

```toml
storage-shard-precreator-check-interval = "10m0s"
```

**JSON:**

```json
{
  "storage-shard-precreator-check-interval": "10m0s"
}
```

<!-- End tabbed content -->

### storage-tsm-use-madv-willneed

Inform the kernel that InfluxDB intends to page in mmap’d sections of TSM files.

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-tsm-use-madv-willneed | INFLUXD_STORAGE_TSM_USE_MADV_WILLNEED | storage-tsm-use-madv-willneed |

###### influxd flag

```sh
influxd --storage-tsm-use-madv-willneed
```

###### Environment variable

```sh
export INFLUXD_STORAGE_TSM_USE_MADV_WILLNEED=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-tsm-use-madv-willneed: true
```

**TOML:**

```toml
storage-tsm-use-madv-willneed = true
```

**JSON:**

```json
{
  "storage-tsm-use-madv-willneed": true
}
```

<!-- End tabbed content -->

### storage-validate-keys

Validate incoming writes to ensure keys have only valid unicode characters.

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-validate-keys | INFLUXD_STORAGE_VALIDATE_KEYS | storage-validate-keys |

###### influxd flag

```sh
influxd --storage-validate-keys
```

###### Environment variable

```sh
export INFLUXD_STORAGE_VALIDATE_KEYS=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-validate-keys: true
```

**TOML:**

```toml
storage-validate-keys = true
```

**JSON:**

```json
{
  "storage-validate-keys": true
}
```

<!-- End tabbed content -->

### storage-wal-flush-on-shutdown

Flush the WAL on shutdown.

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-wal-flush-on-shutdown | INFLUXD_STORAGE_WAL_FLUSH_ON_SHUTDOWN | storage-wal-flush-on-shutdown |

If set, `influxd` flushes or snapshots all WALs prior to completing shutdown–`influxd` performs cache snapshots on shutdown, which results in the WAL files being written to TSM files and then deleted.

This is useful in upgrade and downgrade scenarios to prevent WAL format compatibility issues.

###### influxd flag

```sh
influxd --storage-wal-flush-on-shutdown
```

###### Environment variable

```sh
export INFLUXD_STORAGE_WAL_FLUSH_ON_SHUTDOWN=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-wal-flush-on-shutdown: true
```

**TOML:**

```toml
storage-wal-flush-on-shutdown = true
```

**JSON:**

```json
{
  "storage-wal-flush-on-shutdown": true
}
```

<!-- End tabbed content -->

### storage-wal-fsync-delay

Duration a write will wait before fsyncing. A duration greater than `0` batches multiple fsync calls. This is useful for slower disks or when WAL write contention is present.

**Default:** `0s`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-wal-fsync-delay | INFLUXD_STORAGE_WAL_FSYNC_DELAY | storage-wal-fsync-delay |

###### influxd flag

```sh
influxd --storage-wal-fsync-delay=0s
```

###### Environment variable

```sh
export INFLUXD_STORAGE_WAL_FSYNC_DELAY=0s
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-wal-fsync-delay: 0s
```

**TOML:**

```toml
storage-wal-fsync-delay = "0s"
```

**JSON:**

```json
{
  "storage-wal-fsync-delay": "0s"
}
```

<!-- End tabbed content -->

### storage-wal-max-concurrent-writes

Maximum number writes to the WAL directory to attempt at the same time.

**Default:** `0` *(number of processing units available × 2)*

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-wal-max-concurrent-writes | INFLUXD_STORAGE_WAL_MAX_CONCURRENT_WRITES | storage-wal-max-concurrent-writes |

###### influxd flag

```sh
influxd --storage-wal-max-concurrent-writes=0
```

###### Environment variable

```sh
export INFLUXD_STORAGE_WAL_MAX_CONCURRENT_WRITES=0
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-wal-max-concurrent-writes: 0
```

**TOML:**

```toml
storage-wal-max-concurrent-writes = 0
```

**JSON:**

```json
{
  "storage-wal-max-concurrent-writes": 0
}
```

<!-- End tabbed content -->

### storage-wal-max-write-delay

Maximum amount of time a write request to the WAL directory will wait when the [maximum number of concurrent active writes to the WAL directory](#storage-wal-max-concurrent-writes) has been met. Set to `0` to disable the timeout.

**Default:** `10m`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-wal-max-write-delay | INFLUXD_STORAGE_WAL_MAX_WRITE_DELAY | storage-wal-max-write-delay |

###### influxd flag

```sh
influxd --storage-wal-max-write-delay=10m
```

###### Environment variable

```sh
export INFLUXD_STORAGE_WAL_MAX_WRITE_DELAY=10m
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-wal-max-write-delay: 10m
```

**TOML:**

```toml
storage-wal-max-write-delay = "10m"
```

**JSON:**

```json
{
  "storage-wal-max-write-delay": "10m"
}
```

<!-- End tabbed content -->

### storage-write-timeout

Maximum amount of time the storage engine will process a write request before timing out.

**Default:** `10s`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --storage-write-timeout | INFLUXD_STORAGE_WRITE_TIMEOUT | storage-write-timeout |

###### influxd flag

```sh
influxd --storage-write-timeout=10s
```

###### Environment variable

```sh
export INFLUXD_STORAGE_WRITE_TIMEOUT=10s
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
storage-write-timeout: 10s
```

**TOML:**

```toml
storage-write-timeout = "10s"
```

**JSON:**

```json
{
  "storage-write-timeout": "10s"
}
```

<!-- End tabbed content -->

### store

Specifies the data store for REST resources.

**Options:** `disk`, `memory`  
**Default:** `disk`

For backwards compatibility, this flag also acceptss `bolt` as a value. When using `disk`, REST resources are stored on disk using the [bolt-path](#bolt-path) and [sqlite-path](#sqlite-path).

`memory` is meant for transient environments, such as testing environments, where data persistence does not matter. InfluxData does not recommend using `memory` in production.

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --store | INFLUXD_STORE | store |

###### influxd flag

```sh
influxd --store=bolt
```

###### Environment variable

```sh
export INFLUXD_STORE=bolt
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
store: bolt
```

**TOML:**

```toml
store = "bolt"
```

**JSON:**

```json
{
  "store": "bolt"
}
```

<!-- End tabbed content -->

### strong-passwords

Require passwords to have at least eight characters and include characters from at least three of the following four character classes:

-   uppercase (`A-Z`)
-   lowercase (`a-z`)
-   numbers (`0-9`)
-   special characters (`!@#$%^&*()_+`)

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --strong-passwords | INFLUXD_STRONG_PASSWORDS | strong-passwords |

###### influxd flag

```sh
influxd --strong-passwords
```

###### Environment variable

```sh
export INFLUXD_STRONG_PASSWORDS=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
strong-passwords: true
```

**TOML:**

```toml
strong-passwords = true
```

**JSON:**

```json
{
  "strong-passwords": true
}
```

<!-- End tabbed content -->

### testing-always-allow-setup

Ensures the `/api/v2/setup` endpoint always returns `true` to allow onboarding. This configuration option is primarily used in continuous integration tests.

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --testing-always-allow-setup | INFLUXD_TESTING_ALWAYS_ALLOW_SETUP | testing-always-allow-setup |

###### influxd flag

```sh
influxd --testing-always-allow-setup
```

###### Environment variable

```sh
export INFLUXD_TESTING_ALWAYS_ALLOW_SETUP=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
testing-always-allow-setup: true
```

**TOML:**

```toml
testing-always-allow-setup = true
```

**JSON:**

```json
{
  "testing-always-allow-setup": true
}
```

<!-- End tabbed content -->

### tls-cert

Path to TLS certificate file. Requires the [`tls-key`](#tls-key) to be set.

*For more information, see [Enable TLS encryption](/influxdb/v2/admin/security/enable-tls/).*

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --tls-cert | INFLUXD_TLS_CERT | tls-cert |

###### influxd flag

```sh
influxd --tls-cert=/path/to/influxdb.crt
```

###### Environment variable

```sh
export INFLUXD_TLS_CERT=/path/to/influxdb.crt
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
tls-cert: /path/to/influxdb.crt
```

**TOML:**

```toml
tls-cert = "/path/to/influxdb.crt"
```

**JSON:**

```json
{
  "tls-cert": "/path/to/influxdb.crt"
}
```

<!-- End tabbed content -->

### tls-key

Path to TLS key file. Requires the [`tls-cert`](#tls-cert) to be set.

*For more information, see [Enable TLS encryption](/influxdb/v2/admin/security/enable-tls/).*

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --tls-key | INFLUXD_TLS_KEY | tls-key |

###### influxd flag

```sh
influxd --tls-key=/path/to/influxdb.key
```

###### Environment variable

```sh
export INFLUXD_TLS_KEY=/path/to/influxdb.key
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
tls-key: /path/to/influxdb.key
```

**TOML:**

```toml
tls-key = "/path/to/influxdb.key"
```

**JSON:**

```json
{
  "tls-key": "/path/to/influxdb.key"
}
```

<!-- End tabbed content -->

### tls-min-version

Minimum accepted TLS version.

**Default:** `1.2`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --tls-min-version | INFLUXD_TLS_MIN_VERSION | tls-min-version |

###### influxd flag

```sh
influxd --tls-min-version=1.2
```

###### Environment variable

```sh
export INFLUXD_TLS_MIN_VERSION=1.2
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
tls-min-version: "1.2"
```

**TOML:**

```toml
tls-min-version = "1.2"
```

**JSON:**

```json
{
  "tls-min-version": "1.2"
}
```

<!-- End tabbed content -->

### tls-strict-ciphers

Restrict accepted TLS ciphers to:

-   ECDHE\_ECDSA\_WITH\_AES\_128\_GCM\_SHA256
-   ECDHE\_RSA\_WITH\_AES\_128\_GCM\_SHA256
-   ECDHE\_ECDSA\_WITH\_AES\_256\_GCM\_SHA384
-   ECDHE\_RSA\_WITH\_AES\_256\_GCM\_SHA384
-   ECDHE\_ECDSA\_WITH\_CHACHA20\_POLY1305
-   ECDHE\_RSA\_WITH\_CHACHA20\_POLY1305

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --tls-strict-ciphers | INFLUXD_TLS_STRICT_CIPHERS | tls-strict-ciphers |

###### influxd flag

```sh
influxd --tls-strict-ciphers
```

###### Environment variable

```sh
export INFLUXD_TLS_STRICT_CIPHERS=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
tls-strict-ciphers: true
```

**TOML:**

```toml
tls-strict-ciphers = true
```

**JSON:**

```json
{
  "tls-strict-ciphers": true
}
```

<!-- End tabbed content -->

### tracing-type

Enable tracing in InfluxDB and specifies the tracing type. Tracing is disabled by default.

**Options:** `log`, `jaeger`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --tracing-type | INFLUXD_TRACING_TYPE | tracing-type |

###### influxd flag

```sh
influxd --tracing-type=log
```

###### Environment variable

```sh
export INFLUXD_TRACING_TYPE=log
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
tracing-type: log
```

**TOML:**

```toml
tracing-type = "log"
```

**JSON:**

```json
{
  "tracing-type": "log"
}
```

<!-- End tabbed content -->

### ui-disabled

Disable the InfluxDB user interface (UI). The UI is enabled by default.

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --ui-disabled | INFLUXD_UI_DISABLED | ui-disabled |

###### influxd flag

```sh
influxd --ui-disabled
```

###### Environment variable

```sh
export INFLUXD_UI_DISABLED=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
ui-disabled: true
```

**TOML:**

```toml
ui-disabled = true
```

**JSON:**

```json
{
  "ui-disabled": true
}
```

<!-- End tabbed content -->

### use-hashed-tokens

Enable storing hashed API tokens on disk. Token hashing is **enabled by default in InfluxDB 2.9.0 and later**. In InfluxDB 2.8.0–2.8.x, token hashing was available but disabled by default.

Storing hashed tokens increases security by storing API tokens as hashes on disk. When enabled, all unhashed tokens are converted to hashed tokens on every startup leaving no unhashed tokens on disk. Newly created tokens are also stored as hashes. Lost tokens must be replaced when token hashing is enabled because the hashing prevents them from being recovered.

If token hashing is disabled after being enabled, any hashed tokens on disk remain as hashed tokens. Newly created tokens are stored unhashed when token hashing is disabled. Hashed tokens on disk remain valid and usable even with token hashing disabled.

Hashed token support is available in versions 2.8.0 and newer. Downgrading to older versions is not recommended after enabling hashed tokens because the downgrade process deletes all stored hashed tokens. All hashed tokens must be replaced on a downgrade after hashed tokens are enabled.

To opt out of the default and continue storing tokens unhashed (for example, to preserve compatibility with a possible downgrade to InfluxDB 2.7 or earlier), set `use-hashed-tokens` to `false`.

**Default:** `true` *(in InfluxDB 2.9.0 and later; `false` in 2.8.x)*

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --use-hashed-tokens | INFLUXD_USE_HASHED_TOKENS | use-hashed-tokens |

###### influxd flag

```sh
# Disable token hashing (opt out of the 2.9.0 default)
influxd --use-hashed-tokens=false
```

###### Environment variable

```sh
# Disable token hashing (opt out of the 2.9.0 default)
export INFLUXD_USE_HASHED_TOKENS=false
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
use-hashed-tokens: false
```

**TOML:**

```toml
use-hashed-tokens = false
```

**JSON:**

```json
{
  "use-hashed-tokens": false
}
```

<!-- End tabbed content -->

### vault-addr

Specifies the address of the Vault server expressed as a URL and port. For example: `https://127.0.0.1:8200/`.

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --vault-addr | VAULT_ADDR | vault-addr |

###### influxd flag

```sh
influxd --vault-addr=https://127.0.0.1:8200/
```

###### Environment variable

```sh
export VAULT_ADDR=https://127.0.0.1:8200/
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
vault-addr: https://127.0.0.1:8200/
```

**TOML:**

```toml
vault-addr = "https://127.0.0.1:8200/"
```

**JSON:**

```json
{
  "vault-addr": "https://127.0.0.1:8200/"
}
```

<!-- End tabbed content -->

### vault-cacert

Specifies the path to a PEM-encoded CA certificate file on the local disk. This file is used to verify the Vault server’s SSL certificate. **This setting takes precedence over the [`--vault-capath`](#vault-capath) setting.**

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --vault-cacert | VAULT_CACERT | vault-cacert |

###### influxd flag

```sh
influxd  --vault-cacert=/path/to/ca.pem
```

###### Environment variable

```sh
export VAULT_CACERT=/path/to/ca.pem
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
vault-cacert: /path/to/ca.pem
```

**TOML:**

```toml
vault-cacert = "/path/to/ca.pem"
```

**JSON:**

```json
{
  "vault-cacert": "/path/to/ca.pem"
}
```

<!-- End tabbed content -->

### vault-capath

Specifies the path to a directory of PEM-encoded CA certificate files on the local disk. These certificates are used to verify the Vault server’s SSL certificate.

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --vault-capath | VAULT_CAPATH | vault-capath |

###### influxd flag

```sh
influxd --vault-capath=/path/to/certs/
```

###### Environment variable

```sh
export VAULT_CAPATH=/path/to/certs/
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
vault-capath: /path/to/certs/
```

**TOML:**

```toml
vault-capath = "/path/to/certs/"
```

**JSON:**

```json
{
  "vault-capath": "/path/to/certs/"
}
```

<!-- End tabbed content -->

### vault-client-cert

Specifies the path to a PEM-encoded client certificate on the local disk. This file is used for TLS communication with the Vault server.

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --vault-client-cert | VAULT_CLIENT_CERT | vault-client-cert |

###### influxd flag

```sh
influxd --vault-client-cert=/path/to/client_cert.pem
```

###### Environment variable

```sh
export VAULT_CLIENT_CERT=/path/to/client_cert.pem
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
vault-client-cert: /path/to/client_cert.pem
```

**TOML:**

```toml
vault-client-cert = "/path/to/client_cert.pem"
```

**JSON:**

```json
{
  "vault-client-cert": "/path/to/client_cert.pem"
}
```

<!-- End tabbed content -->

### vault-client-key

Specifies the path to an unencrypted, PEM-encoded private key on disk which corresponds to the matching client certificate.

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --vault-client-key | VAULT_CLIENT_KEY | vault-client-key |

###### influxd flag

```sh
influxd --vault-client-key=/path/to/private_key.pem
```

###### Environment variable

```sh
export VAULT_CLIENT_KEY=/path/to/private_key.pem
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
vault-client-key: /path/to/private_key.pem
```

**TOML:**

```toml
vault-client-key = "/path/to/private_key.pem"
```

**JSON:**

```json
{
  "vault-client-key": "/path/to/private_key.pem"
}
```

<!-- End tabbed content -->

### vault-max-retries

Specifies the maximum number of retries when encountering a 5xx error code. The default is 2 (for three attempts in total). Set this to 0 or less to disable retrying.

**Default:** `2`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --vault-max-retries | VAULT_MAX_RETRIES | vault-max-retries |

###### influxd flag

```sh
influxd --vault-max-retries=2
```

###### Environment variable

```sh
export VAULT_MAX_RETRIES=2
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
vault-max-retries: 2
```

**TOML:**

```toml
vault-max-retries = 2
```

**JSON:**

```json
{
  "vault-max-retries": 2
}
```

<!-- End tabbed content -->

### vault-client-timeout

Specifies the Vault client timeout.

**Default:** `60s`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --vault-client-timeout | VAULT_CLIENT_TIMEOUT | vault-client-timeout |

###### influxd flag

```sh
influxd --vault-client-timeout=60s
```

###### Environment variable

```sh
export VAULT_CLIENT_TIMEOUT=60s
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
vault-client-timeout: 60s
```

**TOML:**

```toml
vault-client-timeout = "60s"
```

**JSON:**

```json
{
  "vault-client-timeout": "60s"
}
```

<!-- End tabbed content -->

### vault-skip-verify

Skip certificate verification when communicating with Vault. *Setting this variable voids [Vault’s security model](https://www.vaultproject.io/docs/internals/security.html) and is **not recommended**.*

**Default:** `false`

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --vault-skip-verify | VAULT_SKIP_VERIFY | vault-skip-verify |

###### influxd flag

```sh
influxd --vault-skip-verify
```

###### Environment variable

```sh
export VAULT_SKIP_VERIFY=true
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
vault-skip-verify: true
```

**TOML:**

```toml
vault-skip-verify = true
```

**JSON:**

```json
{
  "vault-skip-verify": true
}
```

<!-- End tabbed content -->

### vault-tls-server-name

Specifies the name to use as the Server Name Indication (SNI) host when connecting via TLS.

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --vault-tls-server-name | VAULT_TLS_SERVER_NAME | vault-tls-server-name |

###### influxd flag

```sh
influxd --vault-tls-server-name=secure.example.com
```

###### Environment variable

```sh
export VAULT_TLS_SERVER_NAME=secure.example.com
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
vault-tls-server-name: secure.example.com
```

**TOML:**

```toml
vault-tls-server-name = "secure.example.com"
```

**JSON:**

```json
{
  "vault-tls-server-name": "secure.example.com"
}
```

<!-- End tabbed content -->

### vault-token

Specifies the Vault token use when authenticating with Vault.

| influxd flag | Environment variable | Configuration key |
| --- | --- | --- |
| --vault-token | VAULT_TOKEN | vault-token |

###### influxd flag

```sh
influxd --vault-token=exAmple-t0ken-958a-f490-c7fd0eda5e9e
```

###### Environment variable

```sh
export VAULT_TOKEN=exAmple-t0ken-958a-f490-c7fd0eda5e9e
```

###### Configuration file

<!-- Tabbed content: Select one of the following options -->

**YAML:**

```yml
vault-token: exAmple-t0ken-958a-f490-c7fd0eda5e9e
```

**TOML:**

```toml
vault-token = "exAmple-t0ken-958a-f490-c7fd0eda5e9e"
```

**JSON:**

```json
{
  "vault-token": "exAmple-t0ken-958a-f490-c7fd0eda5e9e"
}
```

<!-- End tabbed content -->

#### Related

-   [influxd - InfluxDB service](/influxdb/v2/reference/cli/influxd/)
