<commit_before>---
title: Configuration Options
summary: Learn the configuration options in TiDB.
aliases: ['/docs/dev/command-line-flags-for-tidb-configuration/','/docs/dev/reference/configuration/tidb-server/configuration/','/docs/dev/reference/configuration/tidb-server/server-command-option/']
---

# Configuration Options

When you start the TiDB cluster, you can use command-line options or environment variables to configure it. This document introduces TiDB's command options. The default TiDB ports are `4000` for client requests and `10080` for status report.

## `--advertise-address`

- The IP address through which to log into the TiDB server
- Default: ""
- This address must be accessible by the rest of the TiDB cluster and the user.

## `--binlog-socket`

- The TiDB services use the unix socket file for internal connections, such as the Pump service
- Default: ""
- You can use "/tmp/pump.sock" to accept the communication of Pump unix socket file.

## `--config`

- The configuration file
- Default: ""
- If you have specified the configuration file, TiDB reads the configuration file. If the corresponding configuration also exists in the command line options, TiDB uses the configuration in the command line options to overwrite that in the configuration file. For detailed configuration information, see [TiDB Configuration File Description](/tidb-configuration-file.md).

## `--cors`

- Specifies the `Access-Control-Allow-Origin` value for Cross-Origin Request Sharing (CORS) request of the TiDB HTTP status service
- Default: ""

## `--host`

- The host address that the TiDB server monitors
- Default: "0.0.0.0"
- The TiDB server monitors this address.
- The "0.0.0.0" address monitors all network cards by default. If you have multiple network cards, specify the network card that provides service, such as `192.168.100.113`.

## `--enable-binlog`

+ Enables or disables TiDB binlog generation
+ Default: false

## `-L`

- The log level
- Default: "info"
- You can choose from "debug", "info", "warn", "error", or "fatal".

## `--log-file`

- The log file
- Default: ""
- If this option is not set, logs are output to "stderr". If this option is set, logs are output to the corresponding file, which is automatically rotated in the early morning every day, and the previous file is renamed as a backup.

## `--log-slow-query`

- The directory for the slow query log
- Default: ""
- If this option is not set, logs are output to the file specified by `--log-file` by default.

## `--metrics-addr`

- The Prometheus Pushgateway address
- Default: ""
- Leaving it empty stops the Prometheus client from pushing.
- The format is `--metrics-addr=192.168.100.115:9091`.

## `--metrics-interval`

- The Prometheus client push interval in seconds
- Default: 15s
- Setting the value to 0 stops the Prometheus client from pushing.

## `-P`

- The monitoring port of TiDB services
- Default: "4000"
- The TiDB server accepts MySQL client requests from this port.

## `--path`

- The path to the data directory for local storage engine like "mocktikv"
- For `--store = tikv`, you must specify the path; for `--store = mocktikv`, the default value is used if you do not specify the path.
- For the distributed storage engine like TiKV, `--path` specifies the actual PD address. Assuming that you deploy the PD server on 192.168.100.113:2379, 192.168.100.114:2379 and 192.168.100.115:2379, the value of `--path` is "192.168.100.113:2379, 192.168.100.114:2379, 192.168.100.115:2379".
- Default: "/tmp/tidb"
- You can use `tidb-server --store=mocktikv --path=""` to enable a pure in-memory TiDB.

## `--tmp-storage-path`

+ TiDB's temporary storage path
+ Default: `<TMPDIR>/tidb/tmp-storage`

## `--proxy-protocol-networks`

- The list of proxy server's IP addresses allowed to connect to TiDB using the [PROXY protocol](https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt).
- Default: ""
- In general cases, when you access TiDB behind a reverse proxy, TiDB takes the IP address of the reverse proxy server as the IP address of the client. By enabling the PROXY protocol, reverse proxies that support this protocol such as HAProxy can pass the real client IP address to TiDB.
- After configuring this flag, TiDB allows the configured source IP address to connect to TiDB using the PROXY protocol; if a protocol other than PROXY is used, this connection will be denied. If this flag is left empty, no IP address can connect to TiDB using the PROXY protocol. The value can be the IP address (192.168.1.50) or CIDR (192.168.1.0/24) with `,` as the separator. `*` means any IP addresses.

> **Warning:**
>
> Use `*` with caution because it might introduce security risks by allowing a client of any IP address to report its IP address. In addition, using `*` might also cause the internal component that directly connects to TiDB (such as TiDB Dashboard) to be unavailable.

## `--proxy-protocol-header-timeout`

- Timeout for the PROXY protocol header read
- Default: 5 (seconds)

    > **Note:**
    >
    > Do not set the value to `0`. Use the default value except for special situations.

## `--report-status`

- Enables (`true`) or disables (`false`) the status report and pprof tool
- Default: `true`
- When set to `true`, this parameter enables metrics and pprof. When set to `false`, this parameter disables metrics and pprof.

## `--run-ddl`

- To see whether the `tidb-server` runs DDL statements, and set when the number of `tidb-server` is over two in the cluster
- Default: `true`
- The value can be (true) or (false). (true) indicates the `tidb-server` runs DDL itself. (false) indicates the `tidb-server` does not run DDL itself.

## `--socket string`

- The TiDB services use the unix socket file for external connections.
- Default: ""
- Use `/tmp/tidb.sock` to open the unix socket file.

## `--status`

- The status report port for TiDB server
- Default: "10080"
- This port is used to get server internal data. The data includes [Prometheus metrics](https://prometheus.io/) and [pprof](https://golang.org/pkg/net/http/pprof/).
- Prometheus metrics can be accessed by `"http://host:status_port/metrics"`.
- pprof data can be accessed by `"http://host:status_port/debug/pprof"`.

## `--status-host`

- The `HOST` used to monitor the status of TiDB service
- Default: `0.0.0.0`

## `--store`

- Specifies the storage engine used by TiDB in the bottom layer
- Default: "mocktikv"
- You can choose "mocktikv" or "tikv". ("mocktikv" is the local storage engine; "tikv" is a distributed storage engine)

## `--token-limit`

- The number of sessions allowed to run concurrently in TiDB. It is used for traffic control.
- Default: 1000
- If the number of the concurrent sessions is larger than `token-limit`, the request is blocked and waiting for the operations which have been finished to release tokens.

## `-V`

- Outputs the version of TiDB
- Default: ""

## `--plugin-dir`

+ The storage directory for plugins.
+ Default: "/data/deploy/plugin"

## `--plugin-load`

+ The names of the plugins to be loaded, each separated by a comma.
+ Default: ""

## `--affinity-cpus`

+ Sets the CPU affinity of TiDB servers, which is separated by commas. For example, "1,2,3".
+ Default: ""

## `--repair-mode`

+ Determines whether to enable the repair mode, which is only used in the data repair scenario.
+ Default: false

## `--repair-list`

+ The names of the tables to be repaired in the repair mode.
+ Default: ""

## `--require-secure-transport`

+ Determines whether to require the client to use the secure mode for data transport.
+ Default: false
<commit_msg>update the tidb configuration documents. (#4056)<commit_after>---
title: Configuration Options
summary: Learn the configuration options in TiDB.
aliases: ['/docs/dev/command-line-flags-for-tidb-configuration/','/docs/dev/reference/configuration/tidb-server/configuration/','/docs/dev/reference/configuration/tidb-server/server-command-option/']
---

# Configuration Options

When you start the TiDB cluster, you can use command-line options or environment variables to configure it. This document introduces TiDB's command options. The default TiDB ports are `4000` for client requests and `10080` for status report.

## `--advertise-address`

- The IP address through which to log into the TiDB server
- Default: ""
- This address must be accessible by the rest of the TiDB cluster and the user.

## `--binlog-socket`

- The TiDB services use the unix socket file for internal connections, such as the Pump service
- Default: ""
- You can use "/tmp/pump.sock" to accept the communication of Pump unix socket file.

## `--config`

- The configuration file
- Default: ""
- If you have specified the configuration file, TiDB reads the configuration file. If the corresponding configuration also exists in the command line options, TiDB uses the configuration in the command line options to overwrite that in the configuration file. For detailed configuration information, see [TiDB Configuration File Description](/tidb-configuration-file.md).

## `--config-check`

- Checks the validity of the configuration file and exits
- Default: false

## `--config-strict`

- Enforces the validity of the configuration file
- Default: false

## `--cors`

- Specifies the `Access-Control-Allow-Origin` value for Cross-Origin Request Sharing (CORS) request of the TiDB HTTP status service
- Default: ""

## `--host`

- The host address that the TiDB server monitors
- Default: "0.0.0.0"
- The TiDB server monitors this address.
- The "0.0.0.0" address monitors all network cards by default. If you have multiple network cards, specify the network card that provides service, such as `192.168.100.113`.

## `--enable-binlog`

+ Enables or disables TiDB binlog generation
+ Default: false

## `-L`

- The log level
- Default: "info"
- You can choose from "debug", "info", "warn", "error", or "fatal".

## `--lease`

- The duration of the schema lease. It is **dangerous** to change the value unless you know what you do.
- Default: 45s

## `--log-file`

- The log file
- Default: ""
- If this option is not set, logs are output to "stderr". If this option is set, logs are output to the corresponding file, which is automatically rotated in the early morning every day, and the previous file is renamed as a backup.

## `--log-slow-query`

- The directory for the slow query log
- Default: ""
- If this option is not set, logs are output to the file specified by `--log-file` by default.

## `--metrics-addr`

- The Prometheus Pushgateway address
- Default: ""
- Leaving it empty stops the Prometheus client from pushing.
- The format is `--metrics-addr=192.168.100.115:9091`.

## `--metrics-interval`

- The Prometheus client push interval in seconds
- Default: 15s
- Setting the value to 0 stops the Prometheus client from pushing.

## `-P`

- The monitoring port of TiDB services
- Default: "4000"
- The TiDB server accepts MySQL client requests from this port.

## `--path`

- The path to the data directory for local storage engine like "mocktikv"
- For `--store = tikv`, you must specify the path; for `--store = mocktikv`, the default value is used if you do not specify the path.
- For the distributed storage engine like TiKV, `--path` specifies the actual PD address. Assuming that you deploy the PD server on 192.168.100.113:2379, 192.168.100.114:2379 and 192.168.100.115:2379, the value of `--path` is "192.168.100.113:2379, 192.168.100.114:2379, 192.168.100.115:2379".
- Default: "/tmp/tidb"
- You can use `tidb-server --store=mocktikv --path=""` to enable a pure in-memory TiDB.

## `--tmp-storage-path`

+ TiDB's temporary storage path
+ Default: `<TMPDIR>/tidb/tmp-storage`

## `--proxy-protocol-networks`

- The list of proxy server's IP addresses allowed to connect to TiDB using the [PROXY protocol](https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt).
- Default: ""
- In general cases, when you access TiDB behind a reverse proxy, TiDB takes the IP address of the reverse proxy server as the IP address of the client. By enabling the PROXY protocol, reverse proxies that support this protocol such as HAProxy can pass the real client IP address to TiDB.
- After configuring this flag, TiDB allows the configured source IP address to connect to TiDB using the PROXY protocol; if a protocol other than PROXY is used, this connection will be denied. If this flag is left empty, no IP address can connect to TiDB using the PROXY protocol. The value can be the IP address (192.168.1.50) or CIDR (192.168.1.0/24) with `,` as the separator. `*` means any IP addresses.

> **Warning:**
>
> Use `*` with caution because it might introduce security risks by allowing a client of any IP address to report its IP address. In addition, using `*` might also cause the internal component that directly connects to TiDB (such as TiDB Dashboard) to be unavailable.

## `--proxy-protocol-header-timeout`

- Timeout for the PROXY protocol header read
- Default: 5 (seconds)

    > **Note:**
    >
    > Do not set the value to `0`. Use the default value except for special situations.

## `--report-status`

- Enables (`true`) or disables (`false`) the status report and pprof tool
- Default: `true`
- When set to `true`, this parameter enables metrics and pprof. When set to `false`, this parameter disables metrics and pprof.

## `--run-ddl`

- To see whether the `tidb-server` runs DDL statements, and set when the number of `tidb-server` is over two in the cluster
- Default: `true`
- The value can be (true) or (false). (true) indicates the `tidb-server` runs DDL itself. (false) indicates the `tidb-server` does not run DDL itself.

## `--socket string`

- The TiDB services use the unix socket file for external connections.
- Default: ""
- Use `/tmp/tidb.sock` to open the unix socket file.

## `--status`

- The status report port for TiDB server
- Default: "10080"
- This port is used to get server internal data. The data includes [Prometheus metrics](https://prometheus.io/) and [pprof](https://golang.org/pkg/net/http/pprof/).
- Prometheus metrics can be accessed by `"http://host:status_port/metrics"`.
- pprof data can be accessed by `"http://host:status_port/debug/pprof"`.

## `--status-host`

- The `HOST` used to monitor the status of TiDB service
- Default: `0.0.0.0`

## `--store`

- Specifies the storage engine used by TiDB in the bottom layer
- Default: "mocktikv"
- You can choose "mocktikv" or "tikv". ("mocktikv" is the local storage engine; "tikv" is a distributed storage engine)

## `--token-limit`

- The number of sessions allowed to run concurrently in TiDB. It is used for traffic control.
- Default: 1000
- If the number of the concurrent sessions is larger than `token-limit`, the request is blocked and waiting for the operations which have been finished to release tokens.

## `-V`

- Outputs the version of TiDB
- Default: ""

## `--plugin-dir`

+ The storage directory for plugins.
+ Default: "/data/deploy/plugin"

## `--plugin-load`

+ The names of the plugins to be loaded, each separated by a comma.
+ Default: ""

## `--affinity-cpus`

+ Sets the CPU affinity of TiDB servers, which is separated by commas. For example, "1,2,3".
+ Default: ""

## `--repair-mode`

+ Determines whether to enable the repair mode, which is only used in the data repair scenario.
+ Default: false

## `--repair-list`

+ The names of the tables to be repaired in the repair mode.
+ Default: ""

## `--require-secure-transport`

+ Determines whether to require the client to use the secure mode for data transport.
+ Default: false

{'fraction_non_alphanumeric': 0.1070072710893765, 'fraction_numerical': 0.024451451000579112, 'mean_word_length': 3.7704112952731736, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 17, 'https://': 6, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 26, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '923661', 'n_tokens_mistral': 4789, 'n_tokens_neox': 4477, 'n_words': 2069}