Applies to: SQL Server - Linux
The following sections provide common questions and answers for SQL Server running on Linux.
What Linux platforms are supported?
SQL Server is currently supported on Red Hat Enterprise Server, SUSE Linux Enterprise Server, and Ubuntu. It also supported running in a container with Docker. For the latest information about the supported versions, see Supported platforms.
Will SQL Server on Linux work on other platforms?
SQL Server is tested and supported on Linux for the previously listed distributions. Other Linux distributions are closely related and might be able to run SQL Server (for example, CentOS is closely related to Red Hat Enterprise Server). 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. Also note that some community-maintained Linux distributions don't have a formal way to receive support if the underlying operating system is the problem.
Is SQL Server on Linux the same as on Windows?
The core Database Engine for SQL Server is the same on Linux as it is on Windows. However, some features are currently not supported on Linux. For a list of features that aren't supported on Linux, see the Unsupported features & services. Also review the Known issues. Unless specified in these lists, other SQL Server features and services are supported on Linux.
What is the support policy for SQL Server?
To understand the support policy, review the Technical Support Policy for SQL Server.
I am coming from a Windows SQL Server background. Are there resources to help learn how to use SQL Server on Linux?
The quickstarts provide step-by-step instructions on how to install SQL Server on Linux and run Transact-SQL queries. Other tutorials provide additional instructions on using SQL Server on Linux. For a third-party list of tips, see the MSSQLTIPS list of SQL Server on Linux Tips.
How does licensing work on Linux?
SQL Server is licensed the same way for both Windows and Linux. In fact, you license SQL Server and then you can choose to use that license on the platform of your choice. For more information, see How to license SQL Server.
What edition of SQL Server should I choose when I already purchased it?
When you run
mssql-conf setup, you are presented with the following options:
Choose an edition of SQL Server: 1. Evaluation (free, no production use rights, 180-day limit) 2. Developer (free, no production use rights) 3. Express (free) 4. Web (PAID) 5. Standard (PAID) 6. Enterprise (PAID) 7. Enterprise Core (PAID) 8. I bought a license through a retail sales channel and have a product key to enter.
If you have obtained your license through volume licensing as part of an Enterprise Agreement or through your MSDN subscription, you need to select options 4 through 7. This step does not ask you to enter the license, but you must have previously purchased the appropriate license for your configuration. If you have purchased Standard edition through a retail channel, select option 8. This option does prompt you to enter a key.
How do I verify the installed version and edition of SQL Server on Linux?
Connect to the SQL Server instance with a client tool such as sqlcmd, mssql-cli, or Visual Studio Code. Then run the following Transact-SQL query to verify the version and edition of SQL Server that you are running:
SELECT @@VERSION SELECT SERVERPROPERTY('Edition');
How do I get SQL Server installed on my Linux servers?
Microsoft maintains package repositories for installing SQL Server and supports installation via native package managers such as yum, zypper, and apt. To quickly install, see one of the quickstarts.
Can I install SQL Server on the Linux Subsystem for Windows 10 or Windows 11?
No. Linux running on Windows 10 or Windows 11 is currently not a supported platform for SQL Server and related tools.
Which Linux file systems can SQL Server use for data files?
Currently SQL Server on Linux supports ext4 and XFS. Support for other file systems will be added as needed in the future.
Can I download the installation packages to install SQL Server offline?
Yes. For more information, see the package download links in the Release notes. Also, review the instructions for offline installations.
Can I perform an unattended installation of SQL Server on Linux?
Yes. For a discussion of unattended installation, see Installation guidance for SQL Server on Linux. See the sample scripts for Red Hat, SUSE Linux Enterprise Server, and Ubuntu. You can also review this sample script created by the SQL Server Customer Advisory Team.
Can I use the SQL Server Management Studio client on Windows to access SQL Server on Linux?
Yes, you can use all your existing tools that run on Windows to access SQL Server on Linux. These include tools from Microsoft such as SQL Server Management Studio (SSMS), SQL Server Data Tools (SSDT), and OSS and third-party tools.
Is there a tool like SSMS that runs on Linux?
The new Azure Data Studio is a cross-platform tool for managing SQL Server. For more information, see What is Azure Data Studio.
Are commands like sqlcmd and bcp available on Linux?
Yes, sqlcmd and bcp are natively available on Linux, macOS, and Windows. In addition, use the new mssql-scripter command-line tool on Linux, macOS, or Windows to generate T-SQL scripts for your SQL database running anywhere. Also, see the preview release for mssql-cli.
Is it possible to view Activity Monitor when connected through SSMS on Windows for an instance running on Linux?
Yes, you can use SSMS on Windows to connect remotely, and use tools/ features such as Activity Monitor commands on a Linux instance.
What tools are available to monitor SQL Server performance on Linux?
You can use system dynamic management views (DMVs) to collect various types of information about SQL Server, including Linux process information. You can use Query Store to improve query performance. Other tools, such as the built-in Performance Dashboard, work remotely in SQL Server Management Studio (SSMS) from Windows.
One way to improve performance is to properly configure your Linux operating system and the SQL Server instance. For more information, see Performance best practices and configuration guidelines for SQL Server on Linux.
Has Microsoft created an app like the SQL Server Configuration Manager on Linux?
Yes, there is a configuration tool for SQL Server on Linux: mssql-conf.
Does SQL Server on Linux support multiple instances on the same host?
No, we don't support multiple instances on the same host machine. If you need to run multiple instances on the same host, we recommend using multiple containers. Keep in mind that each container needs to listen on a different port. For more information, see Run multiple SQL Server containers.
Is Active Directory Authentication supported on Linux?
Yes. For more information, see Active Directory Authentication with SQL Server on Linux.
Are Always On availability groups and clustering supported in Linux?
Failover clustering and high availability on Linux are achieved with Pacemaker on Linux. For more information, see Business continuity and database recovery - SQL Server on Linux.
Is it possible to configure replication from Linux to Windows and vice versa?
Read-scale replicas can be used between Windows and Linux for one-way data replication.
Is it possible to migrate existing databases in older versions of SQL Server from Windows to Linux?
Yes, there are several methods of achieving this.
Can I migrate my data from Oracle and other database engines to SQL Server on Linux?
Yes. SSMA supports migration from several types of database engines: Microsoft Access, DB2, MySQL, Oracle, and SAP ASE (formerly SAP Sybase ASE). For an example of how to use SSMA, see Migrate an Oracle schema to SQL Server on Linux with the SQL Server Migration Assistant.
What permissions are required for SQL Server files?
All files in the
/var/opt/mssqlfile folder should be owned by the
mssqluser and belong to the
mssqlgroup. Both the
mssqluser and group should have read-write permissions of all files and directories. Note the following special scenarios involving file and directory permissions:
- Permissions for
mssqlowner and group are required for mounted network shares that are used to store SQL Server files.
- If you locate database files or backups in a non-default directory, you must also set permissions for that directory.
- If you change the default root umask from
0022, SQL Server configuration fails after installation. You must then manually apply required permissions to SQL Server startup account.
- Permissions for
Can I change the ownership of SQL Server files and directories from the installed
mssqlaccount and group?
We don't support changing the ownership of SQL Server directory and files from the default installation. The
mssqlaccount and group are specifically used for SQL Server and has no interactive login access.
Is Symbolic links supported for SQL Server data and log directories?
No, symbolic links aren't supported for SQL Server data and log directories. To change the default data and log directories, see Change the default data or log directory location.
Can we remove the Builtin\Administrator account from SQL Server on Linux and containers instances?
Dropping Builtin\administrators for SQL Server on Linux breaks execution of some of the system stored procedures. We suggest to not remove or drop the Builtin\administrator account from SQL Server on Linux/containers.
- 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
- Reddit: General discussion about SQL Server
- Microsoft SQL Server License Terms and Information
- Support options for business users
- Contact Microsoft
- 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 How to contribute to SQL Server documentation