Access to this page requires authorization. You can try
.
Access to this page requires authorization. You can try
Applies to:
SQL Server
- Linux
This article provides guidance for installing, updating, and uninstalling SQL Server 2017 (14.x), SQL Server 2019 (15.x), SQL Server 2022 (16.x), and SQL Server 2025 (17.x) Preview on Linux.
For other deployment scenarios, see:
Windows
Linux containers
Kubernetes - Big Data Clusters
(SQL Server 2019 (15.x) only)
This guide covers several deployment scenarios. If you only need step-by-step installation instructions, jump to one of the quickstarts:
Quickstart: Install SQL Server and create a database on Red Hat
Quickstart: Install SQL Server and create a database on SUSE Linux Enterprise Server
Quickstart: Install SQL Server and create a database on Ubuntu
Quickstart: Run SQL Server Linux container images with Docker
For answers to frequently asked questions, see the
SQL Server on Linux FAQ
.
SQL Server support policy
Definition
Servicing
Microsoft releases GDR, hotfixes, and security fixes within lifecycle of product for supported distributions.
Support
Microsoft supports users with problems pertaining to supported distributions.
Support policy
SQL Server is supported on Linux distributions until the earlier of two events: the end of the distribution's support lifecycle, or the end of the SQL Server support lifecycle.
Servicing policy
During the Mainstream support phase of SQL Server, we provide Cumulative Updates (CUs) for all Linux distributions that are also within their Mainstream support period. For Linux distributions that move from Mainstream to Extended support and are still recognized as supported platforms, Microsoft can release CUs and bug fixes at its discretion.
Once SQL Server moves beyond Mainstream support and into the Extended support phase, we continue to publish security updates and General Distribution Release (GDR) fixes. However, these updates aren't extended to Linux distributions that conclude their support period.
SQL Server is supported on Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), and Ubuntu. It's also supported as a container image, which can run on Kubernetes, OpenShift, and Docker Engine on Linux.
1
At the end of June 2024, RHEL 7.x transitioned from mainstream maintenance to extended lifecycle support (ELS). For more information, see
Red Hat Enterprise Linux Life Cycle
.
2
At the end of Oct 2024, SLES v12 transitioned from standard general support to long term service pack support (LTSS). For more information, see
Product Support Lifecycle Lifecycle Dates by Product
.
3
At the end of April 2023, Ubuntu 18.04 LTS transitioned from standard maintenance to expanded security maintenance (ESM). For more information, see
Ubuntu 18.04 end of standard support
.
For more information, review the
system requirements
for SQL Server on Linux. For the latest support policy for SQL Server, see the
Technical support policy for Microsoft SQL Server
.
1
At the end of June 2024, RHEL 7.x transitioned from mainstream maintenance to extended lifecycle support (ELS). For more information, see
Red Hat Enterprise Linux Life Cycle
.
2
At the end of Oct 2024, SLES v12 transitioned from standard general support to long term service pack support (LTSS). For more information, see
Product Support Lifecycle Lifecycle Dates by Product
.
3
At the end of April 2023, Ubuntu 18.04 LTS transitioned from standard maintenance to expanded security maintenance (ESM). For more information, see
Ubuntu 18.04 end of standard support
.
For more information, review the
system requirements
for SQL Server on Linux. For the latest support policy for SQL Server, see the
Technical support policy for Microsoft SQL Server
.
For more information, review the
system requirements
for SQL Server on Linux. For the latest support policy for SQL Server, see the
Technical support policy for Microsoft SQL Server
.
Microsoft also supports deploying and managing SQL Server containers by using OpenShift and Kubernetes.
SQL Server is tested and supported on Linux for the previously listed distributions. If you choose to install SQL Server on an unsupported operating system, review the
Support policy
section of the
Technical support policy for Microsoft SQL Server
to understand the support implications.
System requirements
SQL Server has the following system requirements for Linux:
1
2 GB is the minimum required memory to start SQL Server on Linux, which accommodates system threads and internal processes. You must take this amount into consideration when setting
max server memory
and
MemoryLimitMB
.
If you use
Network File System (NFS)
remote shares in production, note the following support requirements:
Use NFS version
4.2 or higher
. Older versions of NFS don't support required features, such as
fallocate
and sparse file creation, common to modern file systems.
Locate only the
/var/opt/mssql
directories on the NFS mount. Other files, such as the SQL Server system binaries, aren't supported.
When you install or upgrade SQL Server, you get the latest version of SQL Server from your configured Microsoft repository. The quickstarts use the Cumulative Update
CU
repository for SQL Server. For more information on repositories and how to configure them, see
Configure repositories for installing and upgrading SQL Server on Linux
.
Install SQL Server
You can install SQL Server on Linux from the command line. For step-by-step instructions, see one of the following quickstarts:
Platform
Installation quickstarts
You can also run SQL Server on Linux in an Azure virtual machine. For more information, see
Provision a SQL VM in Azure
.
After installing, consider making extra configuration changes for optimal performance. For more information, see
Performance best practices and configuration guidelines for SQL Server on Linux
.
Update or upgrade SQL Server
To update the
mssql-server
package to the latest release, use one of the following commands based on your platform:
Platform
Package update commands
These commands download the newest package and replace the binaries located under
/opt/mssql/
. The user generated databases and system databases aren't affected by this operation.
To upgrade SQL Server, first
change your configured repository
to the desired version of SQL Server. Then use the same
update
command to upgrade your version of SQL Server. This step is only possible if the upgrade path is supported between the two repositories.
Roll back SQL Server
To roll back or downgrade SQL Server to a previous release, use the following steps:
Identify the version number for the SQL Server package you want to downgrade to. For a list of package numbers, see the release notes:
Release notes for SQL Server 2022 on Linux
Release notes for SQL Server 2019 on Linux
Release notes for SQL Server 2017 on Linux
Downgrade to a previous version of SQL Server. In the following commands, replace
<version_number>
with the SQL Server version number you identified in step 1.
Platform
Package update commands
The only supported downgrade is if you downgrade to a release within the same major version, such as SQL Server 2022 (16.x).
Check installed SQL Server version
To verify your current version and edition of SQL Server on Linux, use the following procedure:
If not already installed, see
Install the sqlcmd and bcp SQL Server command-line tools on Linux
.
Use
sqlcmd
to run a Transact-SQL command that displays your SQL Server version and edition.
sqlcmd -S localhost -U sa -Q 'select @@VERSION'
Removing the package doesn't delete the generated database files. If you want to delete the database files, use the following command:
sudo rm -rf /var/opt/mssql/
Unattended install
You can perform an unattended installation in the following way:
Follow the initial steps in the quickstarts to register the repositories and install SQL Server.
When you run mssql-conf setup
, set environment variables and use the -n
(no prompt) option.
The following example configures SQL Server Developer edition with the MSSQL_PID
environment variable. It also accepts the EULA (ACCEPT_EULA
) and sets the sa
password (MSSQL_SA_PASSWORD
). The -n
parameter performs an unprompted installation where the configuration values are pulled from the environment variables.
sudo MSSQL_PID=Developer ACCEPT_EULA=Y MSSQL_SA_PASSWORD='<password>' /opt/mssql/bin/mssql-conf -n setup
Caution
Your password should follow the SQL Server default password policy. By default, the password must be at least eight characters long and contain characters from three of the following four sets: uppercase letters, lowercase letters, base-10 digits, and symbols. Passwords can be up to 128 characters long. Use passwords that are as long and complex as possible.
You can also create a script that performs other actions. For example, you could install other SQL Server packages.
For a more detailed sample script, see the following examples:
Sample: Unattended SQL Server installation script for Red Hat Enterprise Linux
Sample: Unattended SQL Server installation script for SUSE Linux Enterprise Server
Sample: Unattended SQL Server installation script for Ubuntu
Offline install
If your Linux machine doesn't have access to the online repositories used in the quick starts, you can download the package files directly. These packages are located in the Microsoft repository, at https://packages.microsoft.com.
If you successfully installed with the steps in the quick starts, you don't need to download or manually install the SQL Server package(s). This section is only for the offline scenario.
Download the database engine package for your platform. Find package download links in the package details section of the Release notes for SQL Server 2022 on Linux.
Move the downloaded package to your Linux machine. If you used a different machine to download the packages, one way to move the packages to your Linux machine is with the scp command.
Install the database engine package. Use one of the following commands based on your platform. Replace the package file name in this example with the exact name you downloaded.
Platform
Package install command
You can also install the RPM packages (RHEL and SLES) with the rpm -ivh
command, but the commands in the previous table automatically install dependencies if available from approved repositories.
Resolve missing dependencies: You might have missing dependencies at this point. If not, you can skip this step. On Ubuntu, if you have access to approved repositories containing those dependencies, the easiest solution is to use the apt-get -f install
command. This command also completes the installation of SQL Server. To manually inspect dependencies, use the following commands:
Platform
List dependencies command
After you resolve the missing dependencies, you can try installing the mssql-server
package again.
Complete the SQL Server setup. Use mssql-conf to complete the SQL Server setup:
sudo /opt/mssql/bin/mssql-conf setup
License and pricing
SQL Server is licensed the same for Linux and Windows. For more information about SQL Server licensing and pricing, see How to license SQL Server, and SQL Server Licensing Resources and Documents.
Optional SQL Server features
After installation, you can also install or enable optional SQL Server features.
Install the sqlcmd and bcp SQL Server command-line tools on Linux
Install SQL Server Agent on Linux
Install SQL Server Full-Text Search on Linux
Install SQL Server 2019 Machine Learning Services (Python and R) on Linux
Install SQL Server Integration Services (SSIS) on Linux
Get help
Ideas for SQL: Have suggestions for improving SQL Server?
Microsoft Q & A (SQL Server)
DBA Stack Exchange (tag sql-server): Ask SQL Server questions
Stack Overflow (tag sql-server): Answers to SQL development questions
Microsoft SQL Server License Terms and Information
Support options for business users
Additional SQL Server help and feedback
Contribute to SQL documentation
Did you know that you can edit SQL content yourself? If you do so, not only do you help improve our documentation, but you also get credited as a contributor to the page.
For more information, see Edit Microsoft Learn documentation.
Related content
SQL Server on Linux Frequently Asked Questions (FAQ)