---
title: Manually upgrade from InfluxDB 1.x to  2.9
description: To manually upgrade from InfluxDB 1.x to InfluxDB 2.9, migrate data, create v1-compatible authorizations, and create database and retention policy (DBRP) mappings.
url: https://docs.influxdata.com/influxdb/v2/install/upgrade/v1-to-v2/manual-upgrade/
estimated_tokens: 5668
product: InfluxDB OSS v2
version: v2
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb/v2/install/upgrade/v1-to-v2/manual-upgrade/
date: '2026-06-05T09:56:08-05:00'
lastmod: '2026-06-05T09:56:08-05:00'
---

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).

To manually upgrade from InfluxDB 1.x to InfluxDB 2.9:

1. [Install InfluxDB 2.9](#install-influxdb-21)
2. [Migrate custom configuration settings](#migrate-custom-configuration-settings)
3. [Create DBRP mappings](#create-dbrp-mappings)
4. [Create authorizations](#create-authorizations)
5. [Migrate time series data](#migrate-time-series-data)
6. [Migrate continuous queries](#migrate-continuous-queries)
7. [Query data with InfluxQL](#query-data-with-influxql)

## Install InfluxDB 2.9

[Download, install, and set up InfluxDB 2.9](/influxdb/v2/get-started/).

#### Required 2.x credentials

All InfluxDB 2.9 `influx` CLI examples below assume the required **host**,**organization**, and **API token** credentials are provided by your[`influx` CLI configuration](/influxdb/v2/reference/cli/influx/#provide-required-authentication-credentials).

## Migrate custom configuration settings

If you’re using custom configuration settings in your InfluxDB 1.x instance, do the following:

1. Compare 1.x and 2.9 configuration settings:

   [](#view-configuration-option-parity)

   View configuration option parity

   |     1.x configuration option     |                                                   2.9 configuration option                                                    |
   |----------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
   |            **[data]**            |                                                                                                                               |
   |               dir                |                               [engine-path](/influxdb/v2/reference/config-options/#engine-path)                               |
   |             wal-dir              |                               [engine-path](/influxdb/v2/reference/config-options/#engine-path)                               |
   |         wal-fsync-delay          |                   [storage-wal-fsync-delay](/influxdb/v2/reference/config-options/#storage-wal-fsync-delay)                   |
   |          index-version           |                                                                                                                               |
   |      trace-logging-enabled       |                                                                                                                               |
   |        query-log-enabled         |                                                                                                                               |
   |      strict-error-handling       |                                                                                                                               |
   |          validate-keys           |                     [storage-validate-keys](/influxdb/v2/reference/config-options/#storage-validate-keys)                     |
   |      cache-max-memory-size       |             [storage-cache-max-memory-size](/influxdb/v2/reference/config-options/#storage-cache-max-memory-size)             |
   |    cache-snapshot-memory-size    |        [storage-cache-snapshot-memory-size](/influxdb/v2/reference/config-options/#storage-cache-snapshot-memory-size)        |
   |cache-snapshot-write-cold-duration|[storage-cache-snapshot-write-cold-duration](/influxdb/v2/reference/config-options/#storage-cache-snapshot-write-cold-duration)|
   | compact-full-write-cold-duration |  [storage-compact-full-write-cold-duration](/influxdb/v2/reference/config-options/#storage-compact-full-write-cold-duration)  |
   |    max-concurrent-compactions    |        [storage-max-concurrent-compactions](/influxdb/v2/reference/config-options/#storage-max-concurrent-compactions)        |
   |        compact-throughput        |                          (not exposed as a separate option; see `storage-compact-throughput` notes)                           |
   |     compact-throughput-burst     |          [storage-compact-throughput-burst](/influxdb/v2/reference/config-options/#storage-compact-throughput-burst)          |
   |      tsm-use-madv-willneed       |             [storage-tsm-use-madv-willneed](/influxdb/v2/reference/config-options/#storage-tsm-use-madv-willneed)             |
   |     max-series-per-database      |                                                                                                                               |
   |        max-values-per-tag        |                                                                                                                               |
   |     max-index-log-file-size      |           [storage-max-index-log-file-size](/influxdb/v2/reference/config-options/#storage-max-index-log-file-size)           |
   |     series-id-set-cache-size     |          [storage-series-id-set-cache-size](/influxdb/v2/reference/config-options/#storage-series-id-set-cache-size)          |
   |                                  |                                                                                                                               |
   |         **[retention]**          |                                                                                                                               |
   |          check-interval          |          [storage-retention-check-interval](/influxdb/v2/reference/config-options/#storage-retention-check-interval)          |
   |                                  |                                                                                                                               |
   |     **[shard-precreation]**      |                                                                                                                               |
   |          check-interval          |   [storage-shard-precreator-check-interval](/influxdb/v2/reference/config-options/#storage-shard-precreator-check-interval)   |
   |          advance-period          |   [storage-shard-precreator-advance-period](/influxdb/v2/reference/config-options/#storage-shard-precreator-advance-period)   |
   |                                  |                                                                                                                               |
   |            **[http]**            |                                                                                                                               |
   |           flux-enabled           |                                                                                                                               |
   |         flux-log-enabled         |                          [flux-log-enabled](/influxdb/v2/reference/config-options/#flux-log-enabled)                          |
   |           bind-address           |                         [http-bind-address](/influxdb/v2/reference/config-options/#http-bind-address)                         |
   |           auth-enabled           |                                                                                                                               |
   |              realm               |                                                                                                                               |
   |           log-enabled            |                                                                                                                               |
   |        suppress-write-log        |                                                                                                                               |
   |         access-log-path          |                                                                                                                               |
   |    access-log-status-filters     |                                                                                                                               |
   |          write-tracing           |                                                                                                                               |
   |          pprof-enabled           |                            [pprof-disabled](/influxdb/v2/reference/config-options/#pprof-disabled)                            |
   |        pprof-auth-enabled        |                                                                                                                               |
   |       debug-pprof-enabled        |                                                                                                                               |
   |        ping-auth-enabled         |                                                                                                                               |
   |          https-enabled           |                                                                                                                               |
   |        https-certificate         |                                  [tls-cert](/influxdb/v2/reference/config-options/#tls-cert)                                  |
   |        https-private-key         |                                   [tls-key](/influxdb/v2/reference/config-options/#tls-key)                                   |
   |          shared-secret           |                                                                                                                               |
   |          max-row-limit           |                                                                                                                               |
   |       max-connection-limit       |                                                                                                                               |
   |       unix-socket-enabled        |                                                                                                                               |
   |           bind-socket            |                                                                                                                               |
   |          max-body-size           |                                                                                                                               |
   |    max-concurrent-write-limit    |                                                                                                                               |
   |     max-enqueued-write-limit     |                                                                                                                               |
   |      enqueued-write-timeout      |                        [http-write-timeout](/influxdb/v2/reference/config-options/#http-write-timeout)                        |
   |                                  |                                                                                                                               |
   |          **[logging]**           |                                                                                                                               |
   |              format              |                                                                                                                               |
   |              level               |                                 [log-level](/influxdb/v2/reference/config-options/#log-level)                                 |
   |          suppress-logo           |                                                                                                                               |
   |                                  |                                                                                                                               |
   |            **[tls]**             |                                                                                                                               |
   |             ciphers              |                        [tls-strict-ciphers](/influxdb/v2/reference/config-options/#tls-strict-ciphers)                        |
   |           min-version            |                           [tls-min-version](/influxdb/v2/reference/config-options/#tls-min-version)                           |
   |           max-version            |                                                                                                                               |

   > [!Note]
> #### 1.x configuration groups not in 2.9 ####
> The following 1.x configuration groups **do not** apply to InfluxDB 2.9:
> * meta
> * coordinator
> * monitor
> * subscriber
> * graphite
> * collectd
> * opentsdb
> * udp
> * continuous\_queries

   The following 1.x configuration groups **do not** apply to InfluxDB 2.9:

   * meta
   * coordinator
   * monitor
   * subscriber
   * graphite
   * collectd
   * opentsdb
   * udp
   * continuous\_queries

2. Apply your 1.x custom settings to the comparable InfluxDB 2.9 settings using`influxd` flags, environment variables, or a 2.9 configuration file.
   For more information about configuring InfluxDB 2.9, see[Configuration options](/influxdb/v2/reference/config-options/).

3. **Restart `influxd`**.

## Create DBRP mappings

InfluxDB database and retention policy (DBRP) mappings associate database and
retention policy combinations with InfluxDB 2.9 [buckets](/influxdb/v2/reference/glossary/#bucket).
These mappings allow InfluxDB 1.x clients to successfully query and write to
InfluxDB 2.9 buckets while using the 1.x DBRP convention.

*For more information about DBRP mapping, see[Database and retention policy mapping](/influxdb/v2/reference/api/influxdb-1x/dbrp/).*

**To map a DBRP combination to an InfluxDB 2.9 bucket:**

1. **Create a bucket**  
   [Create an InfluxDB 2.9 bucket](/influxdb/v2/admin/buckets/create-bucket/).
   We recommend creating a bucket for each unique 1.x database and retention
   policy combination using the following naming convention:

   ```
   # Naming convention
   db-name/rp-name

   # Example
   telegraf/autogen
   ```

2. **Create a DBRP mapping**  
   Use the [`influx v1 dbrp create` command](/influxdb/v2/reference/cli/influx/v1/dbrp/create/)to create a DBRP mapping.
   Provide the following:

   * database name
   * retention policy name *(not retention period)*
   * [bucket ID](/influxdb/v2/admin/buckets/view-buckets/)
   * *(optional)* `--default` flag if you want the retention policy to be the default retention
     policy for the specified database

   #### DB with one RP ####

   ```
   influx v1 dbrp create \
     --db example-db \
     --rp example-rp \
     --bucket-id 00xX00o0X001 \
     --default
   ```

   ```
   # Create telegraf/autogen DBRP mapping with autogen
   # as the default RP for the telegraf DB

   influx v1 dbrp create \
     --db telegraf \
     --rp autogen \
     --bucket-id 00xX00o0X001 \
     --default

   # Create telegraf/downsampled-daily DBRP mapping that
   # writes to a different bucket

   influx v1 dbrp create \
     --db telegraf \
     --rp downsampled-daily \
     --bucket-id 00xX00o0X002
   ```

3. **Confirm the DBRP mapping was created**  
   Use the [`influx v1 dbrp list`](/influxdb/v2/reference/cli/influx/v1/dbrp/list/) to list existing DBRP mappings.

   ```
   influx v1 dbrp list
   ```

For information about managing DBRP mappings, see the[`influx v1 dbrp` command documentation](/influxdb/v2/reference/cli/influx/v1/dbrp/).

## Create authorizations

InfluxDB 2.9 requires authentication and provides two authentication methods:

* [Token authentication](#token-authentication)
* [1.x compatible authorizations](#1x-compatible-authorizations)

### Token authentication

Use [InfluxDB 2.9 token authentication](/influxdb/v2/admin/tokens/) to
authenticate requests to InfluxDB 2.9.

##### Recommended if:

* Your 1.x instance **does not have authentication enabled**.

#### Use tokens with basic authentication

To use tokens with InfluxDB clients that require an InfluxDB username and password,
provide an arbitrary user name and pass the token as the password.

### 1.x-compatible authorizations

InfluxDB 2.9 provides a [1.x compatibility API](/influxdb/v2/reference/api/influxdb-1x/)that lets you authenticate using a username and password as in InfluxDB 1.x.
If authentication is enabled in your InfluxDB 1.x instance,[create a 1.x-compatible authorization](#create-a-1x-compatible-authorization)with the same username and password as your InfluxDB 1.x instance to allow
external clients to connect to your InfluxDB 2.9 instance without any change.

##### Recommended if:

* Your 1.x instance **has authentication enabled**.
* You’re using **InfluxDB 1.x clients or client libraries** configured with
  InfluxDB usernames and passwords.

> [!Note]
> 1.x compatibility authorizations are separate from credentials used to log
> into the InfluxDB 2.9 user interface (UI).

#### Create a 1.x-compatible authorization

Use the InfluxDB 2.9 [`influx v1 auth create` command](/influxdb/v2/reference/cli/influx/v1/auth/create/)to create a 1.x-compatible authorization that grants read/write permissions to specific 2.9 buckets.
Provide the following:

* list of [bucket IDs](/influxdb/v2/admin/buckets/view-buckets/) to
  grant read or write permissions to
* new v1 auth username
* new v1 auth password *(when prompted)*

#### Single bucket ####

```sh
influx v1 auth create \
  --read-bucket 00xX00o0X001 \
  --write-bucket 00xX00o0X001 \
  --username example-user
```

```sh
influx v1 auth create \
  --read-bucket 00xX00o0X001 \
  --read-bucket 00xX00o0X002 \
  --write-bucket 00xX00o0X001 \
  --write-bucket 00xX00o0X002 \
  --username example-user
```

For information about managing 1.x compatible authorizations, see the[`influx v1 auth` command documentation](/influxdb/v2/reference/cli/influx/v1/auth/).

## Migrate time series data

To migrate time series data from your InfluxDB 1.x instance to InfluxDB 2.9:

1. Use the **InfluxDB 1.x** [`influx_inspect export` command](/influxdb/v1/tools/influx_inspect/#export)to export time series data as line protocol.
   Include the `-lponly` flag to exclude comments and the data definition
   language (DDL) from the output file.

   *We recommend exporting each DBRP combination separately to easily write data
   to a corresponding InfluxDB 2.9 bucket.*

   ```
   # Syntax
   influx_inspect export \
     -database <database-name> \
     -retention <retention-policy-name> \
     -out <output-file-path> \
     -lponly

   # Example
   influx_inspect export \
     -database example-db \
     -retention example-rp \
     -out /path/to/example-db_example-rp.lp \
     -lponly
   ```

2. Use the **InfluxDB 2.9** [`influx write` command](/influxdb/v2/reference/cli/influx/write/)to write the exported line protocol to InfluxDB 2.9.

   ```
   # Syntax
   influx write \
     --bucket <bucket-name> \
     --file <path-to-line-protocol-file>

   # Example
   influx write \
     --bucket example-db/example-rp \
     --file /path/to/example-db_example-rp.lp
   ```

3. Repeat steps 1-2 for each bucket.

## Migrate continuous queries

For information about migrating InfluxDB 1.x continuous queries to InfluxDB 2.9 tasks,
see [Migrate continuous queries to tasks](/influxdb/v2/upgrade/v1-to-v2/migrate-cqs/).

## Query data with InfluxQL

InfluxDB 2.9 supports querying data with both Flux and InfluxQL.
For more information about querying InfluxDB 2.9 with InfluxQL,
see [Query data with InfluxQL](/influxdb/v2/query-data/influxql/).

#### Related

* [Upgrade from InfluxDB 1.x to 2.9](/influxdb/v2/install/upgrade/v1-to-v2/)
* [Migrate continuous queries to tasks](/influxdb/v2/install/upgrade/v1-to-v2/migrate-cqs/)
| 1.x configuration option | 2.9  configuration option |
| --- | --- |
| 1.x configuration option | 2.9  configuration option |
| [data] |  |
| dir | engine-path |
| wal-dir | engine-path |
| wal-fsync-delay | storage-wal-fsync-delay |
| index-version |  |
| trace-logging-enabled |  |
| query-log-enabled |  |
| strict-error-handling |  |
| validate-keys | storage-validate-keys |
| cache-max-memory-size | storage-cache-max-memory-size |
| cache-snapshot-memory-size | storage-cache-snapshot-memory-size |
| cache-snapshot-write-cold-duration | storage-cache-snapshot-write-cold-duration |
| compact-full-write-cold-duration | storage-compact-full-write-cold-duration |
| max-concurrent-compactions | storage-max-concurrent-compactions |
| compact-throughput | (not exposed as a separate option; see  storage-compact-throughput  notes) |
| compact-throughput-burst | storage-compact-throughput-burst |
| tsm-use-madv-willneed | storage-tsm-use-madv-willneed |
| max-series-per-database |  |
| max-values-per-tag |  |
| max-index-log-file-size | storage-max-index-log-file-size |
| series-id-set-cache-size | storage-series-id-set-cache-size |
|  |  |
| [retention] |  |
| check-interval | storage-retention-check-interval |
|  |  |
| [shard-precreation] |  |
| check-interval | storage-shard-precreator-check-interval |
| advance-period | storage-shard-precreator-advance-period |
|  |  |
| [http] |  |
| flux-enabled |  |
| flux-log-enabled | flux-log-enabled |
| bind-address | http-bind-address |
| auth-enabled |  |
| realm |  |
| log-enabled |  |
| suppress-write-log |  |
| access-log-path |  |
| access-log-status-filters |  |
| write-tracing |  |
| pprof-enabled | pprof-disabled |
| pprof-auth-enabled |  |
| debug-pprof-enabled |  |
| ping-auth-enabled |  |
| https-enabled |  |
| https-certificate | tls-cert |
| https-private-key | tls-key |
| shared-secret |  |
| max-row-limit |  |
| max-connection-limit |  |
| unix-socket-enabled |  |
| bind-socket |  |
| max-body-size |  |
| max-concurrent-write-limit |  |
| max-enqueued-write-limit |  |
| enqueued-write-timeout | http-write-timeout |
|  |  |
| [logging] |  |
| format |  |
| level | log-level |
| suppress-logo |  |
|  |  |
| [tls] |  |
| ciphers | tls-strict-ciphers |
| min-version | tls-min-version |
| max-version |  |
