| title | Configure SQL Server settings with environment variables | Microsoft Docs |
|---|---|
| description | This article describes how to use environment variables to configure specific SQL Server 2017 settings on Linux. |
| author | rothja |
| ms.author | jroth |
| manager | craigg |
| ms.date | 02/20/2018 |
| ms.topic | conceptual |
| ms.prod | sql |
| ms.component | |
| ms.suite | sql |
| ms.custom | sql-linux |
| ms.technology | linux |
| ms.assetid |
[!INCLUDEappliesto-ss-xxxx-xxxx-xxx-md-linuxonly]
You can use several different environment variables to configure SQL Server 2017 on Linux. These variables are used in two scenarios:
- To configure initial setup with the
mssql-conf setupcommand. - To configure a new SQL Server container in Docker.
Tip
If you need to configure SQL Server after these setup scenarios, see Configure SQL Server on Linux with the mssql-conf tool.
| Environment variable | Description |
|---|---|
| ACCEPT_EULA | Accept the SQL Server license agreement when set to any value (for example, 'Y'). |
| MSSQL_SA_PASSWORD | Configure the SA user password. |
| MSSQL_PID | Set the SQL Server edition or product key. Possible values include: Evaluation Developer Express Web Standard Enterprise A product key If specifying a product key, it must be in the form of #####-#####-#####-#####-#####, where '#' is a number or a letter. |
| MSSQL_LCID | Sets the language ID to use for SQL Server. For example 1036 is French. |
| MSSQL_COLLATION | Sets the default collation for SQL Server. This overrides the default mapping of language id (LCID) to collation. |
| MSSQL_MEMORY_LIMIT_MB | Sets the maximum amount of memory (in MB) that SQL Server can use. By default it is 80% of the total physical memory. |
| MSSQL_TCP_PORT | Configure the TCP port that SQL Server listens on (default 1433). |
| MSSQL_IP_ADDRESS | Set the IP address. Currently, the IP address must be IPv4 style (0.0.0.0). |
| MSSQL_BACKUP_DIR | Set the Default backup directory location. |
| MSSQL_DATA_DIR | Change the directory where the new SQL Server database data files (.mdf) are created. |
| MSSQL_LOG_DIR | Change the directory where the new SQL Server database log (.ldf) files are created. |
| MSSQL_DUMP_DIR | Change the directory where SQL Server will deposit the memory dumps and other troubleshooting files by default. |
| MSSQL_ENABLE_HADR | Enable Availability Group. For example, '1' is enabled, and '0' is disabled |
| MSSQL_AGENT_ENABLED | Enable SQL Server Agent. For example, 'true' is enabled and 'false' is disabled. By default, agent is disabled. |
| MSSQL_MASTER_DATA_FILE | Sets the location of the master database data file. |
| MSSQL_MASTER_LOG_FILE | Sets the location of the master database log file. |
| MSSQL_ERROR_LOG_FILE | Sets the location of the errorlog files. |
This example runs mssql-conf setup with configured environment variables. The following environment variables are specified:
- ACCEPT_EULA accepts the end user license agreement.
- MSSSQL_PID specifies the freely licensed Developer Edition of SQL Server for non-production use.
- MSSQL_SA_PASSWORD sets a strong password.
- MSSQL_TCP_PORT sets the TCP port that SQL Server listens on to 1234.
sudo ACCEPT_EULA='Y' MSSQL_PID='Developer' MSSQL_SA_PASSWORD='<YourStrong!Passw0rd>' MSSQL_TCP_PORT=1234 /opt/mssql/bin/mssql-conf setupThis example docker command uses the following environment variables to create a new SQL Server 2017 container:
- ACCEPT_EULA accepts the end user license agreement.
- MSSSQL_PID specifies the freely licensed Developer Edition of SQL Server for non-production use.
- MSSQL_SA_PASSWORD sets a strong password.
- MSSQL_TCP_PORT sets the TCP port that SQL Server listens on to 1234. This means that instead of mapping port 1433 (default) to a host port, the custom TCP port must be mapped with the
-p 1234:1234command in this example.
If you are running Docker on Linux/macOS, use the following syntax with single quotes:
docker run -e ACCEPT_EULA=Y -e MSSQL_PID='Developer' -e MSSQL_SA_PASSWORD='<YourStrong!Passw0rd>' -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d microsoft/mssql-server-linux:2017-latestIf you are running Docker on Windows, use the following syntax with double quotes:
docker run -e ACCEPT_EULA=Y -e MSSQL_PID="Developer" -e MSSQL_SA_PASSWORD="<YourStrong!Passw0rd>" -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d microsoft/mssql-server-linux:2017-latestNote
The process for running production editions in containers is slightly different. For more information, see Run production container images.
For other SQL Server settings not listed here, see Configure SQL Server on Linux with the mssql-conf tool.
For more information on how to install and run SQL Server on Linux, see Install SQL Server on Linux.