--- title: Manually upgrade from InfluxDB 1.x to 2.7 list_title: Manually upgrade from 1.x to 2.7 description: > To manually upgrade from InfluxDB 1.x to InfluxDB 2.7, migrate data, create 1.x-compatible authorizations, and create database and retention policy (DBRP) mappings. menu: influxdb_v2: parent: InfluxDB 1.x to 2.7 name: Manually upgrade weight: 11 aliases: - /influxdb/v2/upgrade/v1-to-v2/manual-upgrade/ related: - /influxdb/v2/install/upgrade/v1-to-v2/ - /influxdb/v2/install/upgrade/v1-to-v2/migrate-cqs/ --- To manually upgrade from InfluxDB 1.x to InfluxDB {{< current-version >}}: 1. [Install InfluxDB {{< current-version >}}](#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 {{< current-version >}} [Download, install, and set up InfluxDB {{< current-version >}}](/influxdb/v2/get-started/). {{% note %}} #### Required 2.x credentials All InfluxDB {{< current-version >}} `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). {{% /note %}} ## 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 {{< current-version >}} configuration settings: {{< expand-wrapper >}} {{% expand "View configuration option parity" %}} | 1.x configuration option | {{< current-version >}} 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 | | | 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 {{< current-version >}} The following 1.x configuration groups **do not** apply to InfluxDB {{< current-version >}}: - meta - coordinator - monitor - subscriber - graphite - collectd - opentsdb - udp - continuous_queries {{% /note %}} {{% /expand %}} {{< /expand-wrapper >}} 2. Apply your 1.x custom settings to the comparable InfluxDB {{< current-version >}} settings using `influxd` flags, environment variables, or a {{< current-version >}} configuration file. For more information about configuring InfluxDB {{< current-version >}}, 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 {{< current-version >}} [buckets](/influxdb/v2/reference/glossary/#bucket). These mappings allow InfluxDB 1.x clients to successfully query and write to InfluxDB {{< current-version >}} 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 {{< current-version >}} bucket:** 1. **Create a bucket** [Create an InfluxDB {{< current-version >}} 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: ```sh # 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 {{< code-tabs-wrapper >}} {{% code-tabs %}} [DB with one RP](#) [DB with multiple RPs](#) {{% /code-tabs %}} {{% code-tab-content %}} ```sh influx v1 dbrp create \ --db example-db \ --rp example-rp \ --bucket-id 00xX00o0X001 \ --default ``` {{% /code-tab-content %}} {{% code-tab-content %}} ```sh # 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 ``` {{% /code-tab-content %}} {{< /code-tabs-wrapper >}} 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. ```sh 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 {{< current-version >}} requires authentication and provides two authentication methods: - [Token authentication](#token-authentication) - [1.x compatible authorizations](#1x-compatible-authorizations) ### Token authentication Use [InfluxDB {{< current-version >}} token authentication](/influxdb/v2/admin/tokens/) to authenticate requests to InfluxDB {{< current-version >}}. ##### Recommended if: - Your 1.x instance **does not have authentication enabled**. {{% note %}} #### 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. {{% /note %}} ### 1.x-compatible authorizations InfluxDB {{< current-version >}} 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 {{< current-version >}} 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 {{< current-version >}} user interface (UI). {{% /note %}} #### Create a 1.x-compatible authorization Use the InfluxDB {{< current-version >}} [`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 {{< current-version >}} 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)_ {{< code-tabs-wrapper >}} {{% code-tabs %}} [Single bucket](#) [Multiple buckets](#) {{% /code-tabs %}} {{% code-tab-content %}} ```sh influx v1 auth create \ --read-bucket 00xX00o0X001 \ --write-bucket 00xX00o0X001 \ --username example-user ``` {{% /code-tab-content %}} {{% code-tab-content %}} ```sh influx v1 auth create \ --read-bucket 00xX00o0X001 \ --read-bucket 00xX00o0X002 \ --write-bucket 00xX00o0X001 \ --write-bucket 00xX00o0X002 \ --username example-user ``` {{% /code-tab-content %}} {{< /code-tabs-wrapper >}} 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 {{< current-version >}}: 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 {{< current-version >}} bucket._ ```sh # Syntax influx_inspect export \ -database \ -retention \ -out \ -lponly # Example influx_inspect export \ -database example-db \ -retention example-rp \ -out /path/to/example-db_example-rp.lp \ -lponly ``` 2. Use the **InfluxDB {{< current-version >}}** [`influx write` command](/influxdb/v2/reference/cli/influx/write/) to write the exported line protocol to InfluxDB {{< current-version >}}. ```sh # Syntax influx write \ --bucket \ --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 {{< current-version >}} tasks, see [Migrate continuous queries to tasks](/influxdb/v2/upgrade/v1-to-v2/migrate-cqs/). ## Query data with InfluxQL InfluxDB {{< current-version >}} supports querying data with both Flux and InfluxQL. For more information about querying InfluxDB {{< current-version >}} with InfluxQL, see [Query data with InfluxQL](/influxdb/v2/query-data/influxql/).