## 4.9 Environment Variables

[]()[]()[]()

 This section lists environment variables that are used directly or indirectly by MySQL. Most of these can also be found in other places in this manual.

 Options on the command line take precedence over values specified in option files and environment variables, and values in option files take precedence over values in environment variables. In many cases, it is preferable to use an option file instead of environment variables to modify the behavior of MySQL. See [Section 4.2.2.2, “Using Option Files”](option-files.html).

[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()[]()

|               Variable               |                                                                                                                  Description                                                                                                                  |
|--------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `AUTHENTICATION_KERBEROS_CLIENT_LOG` |                                                                                                    Kerberos authentication logging level.                                                                                                     |
|   `AUTHENTICATION_LDAP_CLIENT_LOG`   |                                                                                                Client-side LDAP authentication logging level.                                                                                                 |
|       `AUTHENTICATION_PAM_LOG`       |                                                         [PAM](pam-pluggable-authentication.html#pam-pluggable-authentication-debugging) authentication plugin debug logging settings.                                                         |
|                 `CC`                 |                                                                                             The name of your C compiler (for running **CMake**).                                                                                              |
|                `CXX`                 |                                                                                            The name of your C++ compiler (for running **CMake**).                                                                                             |
|                 `CC`                 |                                                                                             The name of your C compiler (for running **CMake**).                                                                                              |
|              `DBI_USER`              |                                                                                                      The default user name for Perl DBI.                                                                                                      |
|             `DBI_TRACE`              |                                                                                                          Trace options for Perl DBI.                                                                                                          |
|                `HOME`                |                                                                           The default path for the [**mysql**](mysql.html) history file is `$HOME/.mysql_history`.                                                                            |
|            `LD_RUN_PATH`             |                                                                                             Used to specify the location of `libmysqlclient.so`.                                                                                              |
|  `LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN`  |                                    Enable `mysql_clear_password` authentication plugin; see [Section 6.4.1.4, “Client-Side Cleartext Pluggable Authentication”](cleartext-pluggable-authentication.html).                                     |
|        `LIBMYSQL_PLUGIN_DIR`         |                                                                                                Directory in which to look for client plugins.                                                                                                 |
|          `LIBMYSQL_PLUGINS`          |                                                                                                          Client plugins to preload.                                                                                                           |
|            `MYSQL_DEBUG`             |                                                                                                      Debug trace options when debugging.                                                                                                      |
|         `MYSQL_GROUP_SUFFIX`         |                                                    Option group suffix value (like specifying [`--defaults-group-suffix`](option-file-options.html#option_general_defaults-group-suffix)).                                                    |
|           `MYSQL_HISTFILE`           |                                                  The path to the [**mysql**](mysql.html) history file. If this variable is set, its value overrides the default for `$HOME/.mysql_history`.                                                   |
|          `MYSQL_HISTIGNORE`          |                          Patterns specifying statements that [**mysql**](mysql.html) should not log to `$HOME/.mysql_history`, or `syslog` if [`--syslog`](mysql-command-options.html#option_mysql_syslog) is given.                          |
|             `MYSQL_HOME`             |                                                                                 The path to the directory in which the server-specific `my.cnf` file resides.                                                                                 |
|             `MYSQL_HOST`             |                                                                                The default host name used by the [**mysql**](mysql.html) command-line client.                                                                                 |
|`MYSQL_OPENSSL_UDF_DH_BITS_THRESHOLD` |        Maximum key length for [`create_dh_parameters()`](enterprise-encryption-functions.html#function_create-dh-parameters). See [Section 6.6.2, “MySQL Enterprise Encryption Usage and Examples”](enterprise-encryption-usage.html).        |
|`MYSQL_OPENSSL_UDF_DSA_BITS_THRESHOLD`|Maximum DSA key length for [`create_asymmetric_priv_key()`](enterprise-encryption-functions.html#function_create-asymmetric-priv-key). See [Section 6.6.2, “MySQL Enterprise Encryption Usage and Examples”](enterprise-encryption-usage.html).|
|`MYSQL_OPENSSL_UDF_RSA_BITS_THRESHOLD`|Maximum RSA key length for [`create_asymmetric_priv_key()`](enterprise-encryption-functions.html#function_create-asymmetric-priv-key). See [Section 6.6.2, “MySQL Enterprise Encryption Usage and Examples”](enterprise-encryption-usage.html).|
|             `MYSQL_PS1`              |                                                                                 The command prompt to use in the [**mysql**](mysql.html) command-line client.                                                                                 |
|             `MYSQL_PWD`              |                                                             The default password when connecting to [**mysqld**](mysqld.html). Using this is insecure. See note following table.                                                              |
|           `MYSQL_TCP_PORT`           |                                                                                                        The default TCP/IP port number.                                                                                                        |
|       `MYSQL_TEST_LOGIN_FILE`        |                                                                                                The name of the `.mylogin.cnf` login path file.                                                                                                |
|       `MYSQL_TEST_TRACE_CRASH`       |                                                                               Whether the test protocol trace plugin crashes clients. See note following table.                                                                               |
|       `MYSQL_TEST_TRACE_DEBUG`       |                                                                               Whether the test protocol trace plugin produces output. See note following table.                                                                               |
|          `MYSQL_UNIX_PORT`           |                                                                                    The default Unix socket file name; used for connections to `localhost`.                                                                                    |
|          `MYSQLX_TCP_PORT`           |                                                                                                   The X Plugin default TCP/IP port number.                                                                                                    |
|          `MYSQLX_UNIX_PORT`          |                                                                               The X Plugin default Unix socket file name; used for connections to `localhost`.                                                                                |
|           `NOTIFY_SOCKET`            |                                                                                     Socket used by [**mysqld**](mysqld.html) to communicate with systemd.                                                                                     |
|                `PATH`                |                                                                                                   Used by the shell to find MySQL programs.                                                                                                   |
|          `PKG_CONFIG_PATH`           |                                                                                  Location of `mysqlclient.pc` **pkg-config** file. See note following table.                                                                                  |
|               `TMPDIR`               |                                                                                              The directory in which temporary files are created.                                                                                              |
|                 `TZ`                 |                                                               This should be set to your local time zone. See [Section B.3.3.7, “Time Zone Problems”](timezone-problems.html).                                                                |
|               `UMASK`                |                                                                                  The user-file creation mode when creating files. See note following table.                                                                                   |
|             `UMASK_DIR`              |                                                                             The user-directory creation mode when creating directories. See note following table.                                                                             |
|                `USER`                |                                                                                The default user name on Windows when connecting to [**mysqld**](mysqld.html).                                                                                 |

 For information about the [**mysql**](mysql.html) history file, see [Section 4.5.1.3, “mysql Client Logging”](mysql-logging.html).

 Use of `MYSQL_PWD` to specify a MySQL password must be considered *extremely insecure* and should not be used. Some versions of **ps** include an option to display the environment of running processes. On some systems, if you set `MYSQL_PWD`, your password is exposed to any other user who runs **ps**. Even on systems without such a version of **ps**, it is unwise to assume that there are no other methods by which users can examine process environments.

`MYSQL_PWD` is deprecated as of MySQL 8.0; expect it to be removed in a future version of MySQL.

`MYSQL_TEST_LOGIN_FILE` is the path name of the login path file (the file created by [**mysql\_config\_editor**](mysql-config-editor.html)). If not set, the default value is `%APPDATA%\MySQL\.mylogin.cnf` directory on Windows and `$HOME/.mylogin.cnf` on non-Windows systems. See [Section 4.6.7, “mysql\_config\_editor — MySQL Configuration Utility”](mysql-config-editor.html).

 The `MYSQL_TEST_TRACE_DEBUG` and `MYSQL_TEST_TRACE_CRASH` variables control the test protocol trace client plugin, if MySQL is built with that plugin enabled. For more information, see [Using the Test Protocol Trace Plugin](https://dev.mysql.com/doc/extending-mysql/8.0/en/test-protocol-trace-plugin.html).

 The default `UMASK` and `UMASK_DIR` values are `0640` and `0750`, respectively. MySQL assumes that the value for `UMASK` or `UMASK_DIR` is in octal if it starts with a zero. For example, setting `UMASK=0600` is equivalent to `UMASK=384` because 0600 octal is 384 decimal.

 The `UMASK` and `UMASK_DIR` variables, despite their names, are used as modes, not masks:

* If `UMASK` is set, [**mysqld**](mysqld.html) uses `($UMASK | 0600)` as the mode for file creation, so that newly created files have a mode in the range from 0600 to 0666 (all values octal).

* If `UMASK_DIR` is set, [**mysqld**](mysqld.html) uses `($UMASK_DIR | 0700)` as the base mode for directory creation, which then is AND-ed with `~(~$UMASK & 0666)`, so that newly created directories have a mode in the range from 0700 to 0777 (all values octal). The AND operation may remove read and write permissions from the directory mode, but not execute permissions.

 See also [Section B.3.3.1, “Problems with File Permissions”](file-permissions.html).

 It may be necessary to set `PKG_CONFIG_PATH` if you use **pkg-config** for building MySQL programs. See [Building C API Client Programs Using pkg-config](https://dev.mysql.com/doc/c-api/8.0/en/c-api-building-clients-pkg-config.html).

