Skip to content

Latest commit

 

History

History
155 lines (107 loc) · 8.32 KB

sql-server-linux-configure-environment-variables.md

File metadata and controls

155 lines (107 loc) · 8.32 KB
titledescriptionauthorms.authorms.datems.servicems.subservicems.topicms.custom
Configure Environment Variables for SQL Server on Linux
This article describes how to use environment variables to configure specific SQL Server settings on Linux.
rwestMSFT
randolphwest
11/18/2024
sql
linux
how-to
linux-related-content

Configure SQL Server settings with environment variables on Linux

[!INCLUDE SQL Server - Linux]

::: moniker range="=sql-server-linux-2017 || =sql-server-2017"

You can use several different environment variables to configure [!INCLUDE sssql17-md] on Linux. These variables are used in two scenarios:

::: moniker-end

::: moniker range="=sql-server-linux-ver15 || =sql-server-ver15"

You can use several different environment variables to configure [!INCLUDE sssql19-md] on Linux. These variables are used in two scenarios:

::: moniker-end

::: moniker range=">= sql-server-linux-ver16 || >= sql-server-ver16"

You can use several different environment variables to configure [!INCLUDE sssql22-md] on Linux. These variables are used in two scenarios:

::: moniker-end

Tip

If you need to configure SQL Server after these setup scenarios, see Configure SQL Server on Linux with the mssql-conf tool.

Environment variables

Environment variableDescription
ACCEPT_EULASet the ACCEPT_EULA variable to any value to confirm your acceptance of the End-User Licensing Agreement. Required setting for the SQL Server image.
MSSQL_SA_PASSWORDConfigure the sa password.

The SA_PASSWORD environment variable is deprecated. Use MSSQL_SA_PASSWORD instead.
MSSQL_PIDSet the SQL Server edition or product key. Possible values include:

Evaluation
Developer
Express
Web
Standard
Enterprise1
EnterpriseCore1
A product key

If specifying a product key, it must be in the form of #####-#####-#####-#####-#####, where '#' is a number or a letter.
MSSQL_LCIDSets the language ID to use for SQL Server. For example, 1036 is French.
MSSQL_COLLATIONSets the default collation for SQL Server. This overrides the default mapping of language ID (LCID) to collation.
MSSQL_MEMORY_LIMIT_MBSets the maximum amount of memory (in MB) that SQL Server can use. By default, it's 80% of the total physical memory.
MSSQL_TCP_PORTConfigure the TCP port that SQL Server listens on (default 1433).
MSSQL_IP_ADDRESSSet the IP address. Currently, the IP address must be IPv4 style (0.0.0.0).
MSSQL_BACKUP_DIRSet the Default backup directory location.
MSSQL_DATA_DIRChange the directory where the new SQL Server database data files (.mdf) are created.
MSSQL_LOG_DIRChange the directory where the new SQL Server database log (.ldf) files are created.
MSSQL_DUMP_DIRChange the directory where SQL Server deposits the memory dumps and other troubleshooting files by default.
MSSQL_ENABLE_HADREnable Availability Group. For example, '1' is enabled, and '0' is disabled
MSSQL_AGENT_ENABLEDEnable SQL Server Agent. For example, 'true' is enabled and 'false' is disabled. By default, agent is disabled.
MSSQL_MASTER_DATA_FILESets the location of the master database data file. Must be named master.mdf until first run of SQL Server.
MSSQL_MASTER_LOG_FILESets the location of the master database log file. Must be named mastlog.ldf until first run of SQL Server.
MSSQL_ERROR_LOG_FILESets the location of the errorlog files. For example, /var/opt/mssql/log/errorlog.

1 The legacy Enterprise license represents Enterprise edition with Server + Client Access License (CAL) based licensing, and is limited to a maximum of 20 cores per SQL Server instance. Enterprise isn't available for new agreements. You should choose EnterpriseCore when you wish to deploy Enterprise edition. EnterpriseCore represents the core-based server licensing model with no core limits. For more information, see Compute capacity limits by edition of SQL Server.

Use with initial setup

This example runs mssql-conf setup with configured environment variables. The following environment variables are specified:

  • ACCEPT_EULA accepts the end user license agreement.

  • MSSQL_PID specifies the freely licensed Developer Edition of SQL Server for non-production use.

  • MSSQL_SA_PASSWORD sets a strong password. [!INCLUDE password-complexity]

  • MSSQL_TCP_PORT sets the TCP port that SQL Server listens on to 1234.

sudo ACCEPT_EULA='Y' MSSQL_PID='Developer' MSSQL_SA_PASSWORD='<password>' MSSQL_TCP_PORT=1234 /opt/mssql/bin/mssql-conf setup

Use with Docker

This example docker command uses the following environment variables to create a new SQL Server container:

  • ACCEPT_EULA accepts the end user license agreement.

  • MSSQL_PID specifies the freely licensed Developer Edition of SQL Server for non-production use.

  • MSSQL_SA_PASSWORD sets a strong password. [!INCLUDE password-complexity]

  • 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:1234 command in this example.

::: moniker range="=sql-server-linux-2017 || =sql-server-2017"

If you're running Docker on Linux, use the following syntax with single quotes:

docker run -e ACCEPT_EULA=Y -e MSSQL_PID='Developer' -e MSSQL_SA_PASSWORD='<password>' -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2017-latest

If you're 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="<password>" -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2017-latest

Note

The process for running production editions in containers is slightly different. For more information, see Run production container images.

::: moniker-end

::: moniker range="=sql-server-linux-ver15 || =sql-server-ver15"

If you're running Docker on Linux, use the following syntax with single quotes:

docker run -e ACCEPT_EULA=Y -e MSSQL_PID='Developer' -e MSSQL_SA_PASSWORD='<password>' -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2019-latest

If you're 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="<password>" -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2019-latest

::: moniker-end

::: moniker range=">= sql-server-linux-ver16 || >= sql-server-ver16"

If you're running Docker on Linux, use the following syntax with single quotes:

docker run -e ACCEPT_EULA=Y -e MSSQL_PID='Developer' -e MSSQL_SA_PASSWORD='<password>' -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2022-latest

If you're 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="<password>" -e MSSQL_TCP_PORT=1234 -p 1234:1234 -d mcr.microsoft.com/mssql/server:2022-latest

::: moniker-end

Caution

[!INCLUDE password-complexity]

Related content

[!INCLUDE contribute-to-content]

close