Upraviť

SQL Server on Linux: Known issues

The following sections describe known issues with SQL Server on Linux.

General

The following table lists the most common issues with SQL Server on Linux.

Issue Resolution
The length of the hostname where SQL Server is installed must be 15 characters or shorter. Change the name in /etc/hostname to a value 15 characters long or shorter.
Manually setting the system time backward causes SQL Server to stop updating the internal system time within the Database Engine. Restart SQL Server.
Only single instance installations are supported. To have more than one instance on a given host, consider using virtual machines or Linux containers.
SQL Server Configuration Manager can't connect to SQL Server on Linux. Configuration Manager isn't supported on Linux. Use mssql-conf to manage SQL Server on Linux instead.
The default language of the sa account is English. Change the language of the sa account with the ALTER LOGIN statement.
The OLE DB provider logs the following warning:

Failed to verify the Authenticode signature of 'C:\binn\msoledbsql.dll'. Signature verification of SQL Server DLLs will be skipped. Genuine copies of SQL Server are signed. Failure to verify the Authenticode signature might indicate that this isn't an authentic release of SQL Server. Install a genuine copy of SQL Server or contact customer support.
No action is required. The OLE DB provider uses a SHA256 signature. The SQL Server Database Engine doesn't validate the signed .dll correctly.
The reset password command in mssql-conf throws the following error:

Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information.
The error message is a false negative. The password reset succeeds, and you can continue using the new password.

Applies to: SQL Server 2022 (16.x) container images only.

Databases

  • You can't move the master database with the mssql-conf utility. You can move other system databases with mssql-conf.

  • When you restore a database that was backed up on SQL Server on Windows, you must use the WITH MOVE clause in the Transact-SQL statement. For more information, see Migrate a SQL Server database from Windows to Linux using backup and restore.

  • Certain algorithms (cipher suites) for Transport Layer Security (TLS) don't work properly with SQL Server on Linux. This behavior causes connection failures when you try to connect to SQL Server, and problems establishing connections between replicas in high availability groups.

    To resolve this issue, modify the mssql.conf configuration script for SQL Server on Linux to disable problematic cipher suites:

    1. Add the following section to /var/opt/mssql/mssql.conf. The exclamation symbol (!) negates the expression. This negation tells OpenSSL not to use the cipher suite that follows.

      [network]
      tlsciphers=AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!ECDHE-RSA-AES128-GCM-SHA256:!ECDHE-RSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES128-GCM-SHA256:!ECDHE-ECDSA-AES256-SHA384:!ECDHE-ECDSA-AES128-SHA256:!ECDHE-ECDSA-AES256-SHA:!ECDHE-ECDSA-AES128-SHA:!ECDHE-RSA-AES256-SHA384:!ECDHE-RSA-AES128-SHA256:!ECDHE-RSA-AES256-SHA:!ECDHE-RSA-AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-DSS-AES256-SHA256:!DHE-DSS-AES128-SHA256:!DHE-DSS-AES256-SHA:!DHE-DSS-AES128-SHA:!DHE-DSS-DES-CBC3-SHA:!NULL-SHA256:!NULL-SHA
      
    2. Restart SQL Server with the following command.

      sudo systemctl restart mssql-server
      
  • You can't restore SQL Server 2014 (12.x) databases on Windows that use In-Memory OLTP to SQL Server on Linux. If your SQL Server 2014 (12.x) database uses In-Memory OLTP, first upgrade the databases to a newer version of SQL Server on Windows. Then, move it to SQL Server on Linux, with backup/restore, or detach/attach.

  • Linux doesn't currently support the ADMINISTER BULK OPERATIONS user permission.

  • You can't restore Transparent Data Encryption (TDE)-compressed backups made with SQL Server 2019 (15.x) CU 16 and later versions to previous CU versions of SQL Server 2019 (15.x). For more information, see FIX: Error 3241 occurs during executing RESTORE LOG or RESTORE DATABASE.

    You can still use SQL Server 2019 (15.x) CU 16 and later versions to restore TDE-compressed backups made with previous CU versions of SQL Server 2019 (15.x).

  • When you install SQL Server 2022 (16.x) on Ubuntu 22.04, you might see the following error message: Failed to start Microsoft SQL Server Database Engine. If you review the error log, you see an incorrect path for the system databases.

    To work around this issue, start the instance in single-user mode, and use ALTER DATABASE ... MODIFY FILE to move the configured location of the system databases to the default location /var/opt/mssql/data. After you make this change, restart the service.

Network

Features that involve outbound TCP connections from the sqlservr process, such as linked servers, PolyBase, or availability groups, might not work if both the following conditions apply:

  • The target server is specified as a hostname and not an IP address.

  • The source instance has IPv6 disabled in the kernel. To verify if your system has IPv6 enabled in the kernel, all the following tests must pass:

    • cat /proc/cmdline prints the boot cmdline of the current kernel. The output must not contain ipv6.disable=1.
    • The /proc/sys/net/ipv6/ directory must exist.
    • A C program that calls socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) should succeed. The syscall must return an fd != -1 and must not fail with EAFNOSUPPORT.

The exact error depends on the feature. For linked servers, you see a login timeout error. For availability groups, the ALTER AVAILABILITY GROUP JOIN DDL on the secondary fails after five minutes with a download configuration timeout error.

To work around this issue, do one of the following options:

  • Use IPs instead of host names to specify the target of the TCP connection.

  • Enable IPv6 in the kernel by removing ipv6.disable=1 from the boot command line. The method depends on the Linux distribution and the bootloader, such as grub. If you want IPv6 to be disabled, you can still disable it by setting net.ipv6.conf.all.disable_ipv6 = 1 in the sysctl configuration (for example, /etc/sysctl.conf). Although this setting prevents the system's network adapter from getting an IPv6 address, it allows the sqlservr features to work.

TLS 1.3 not supported on SQL Server 2022

Applies to: SQL Server 2022 (16.x) only.

Although TLS 1.3 is supported on SQL Server 2022 (16.x) for Windows, you must use TLS 1.2 on Linux.

Note

TLS 1.3 is supported for SQL Server 2025 (17.x) on Ubuntu 22.04, Ubuntu 24.04, RHEL 9, and RHEL 10. TLS 1.3 is enabled by default.

Network File System (NFS)

If you use Network File System (NFS) remote shares in production, note the following support requirements:

  • Use NFS version 4.2 or later versions. Older versions of NFS don't support required features, such as fallocate and sparse file creation, common to modern file systems.

  • Only the /var/opt/mssql directories are supported on the NFS mount. Other files, such as the SQL Server system binaries, aren't supported.

  • Ensure that NFS clients use the nolock option when mounting the remote share.

IPv6 connectivity with Microsoft Entra authentication

If your server or container is enabled for IPv6, ensure that IPv6 addresses are reachable and routable. If IPv6 isn't fully configured, authentication requests to Microsoft Entra ID might fail due to unreachable IPv6 endpoints.

To control IPv6 DNS resolution behavior on SQL Server 2022 CU 19 and later versions, set the network.ipv6dnsrecordslimit option in mssql-conf. For more information, see network.ipv6dnsrecordslimit.

Localization

  • If your locale isn't English (en_us) during setup, you must use UTF-8 encoding in your bash session/terminal. If you use ASCII encoding, you might see an error similar to the following output:

    UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 8: ordinal not in range(128)

    If you can't use UTF-8 encoding, run setup with the MSSQL_LCID environment variable to specify your language choice.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • When you run mssql-conf setup and perform a non-English installation of SQL Server, you might see incorrect extended characters after the localized text, "Configuring SQL Server...". Or, for non-Latin based installations, the sentence might be missing completely. The missing sentence should display the following localized string:

    The licensing PID was successfully processed. The new edition is [<Name> edition].

    This string appears for information purposes only and doesn't affect the installation of SQL Server.

Not all filters are available with this release, including filters for Microsoft Office documents. For a list of supported filters, see Install SQL Server Full-Text Search on Linux.

SQL Server Integration Services (SSIS)

The mssql-server-is package isn't supported on SUSE Linux Enterprise Server (SLES). The package is supported on Ubuntu and Red Hat Enterprise Linux (RHEL).

Integration Services packages can use ODBC connections on Linux. This functionality works with the SQL Server and MySQL ODBC drivers, and should also work with any Unicode ODBC driver that observes the ODBC specification. At design time, provide either a DSN or a connection string to connect to the ODBC data; you can also use Windows authentication. For more info, see the blog post announcing ODBC support on Linux.

This release doesn't support the following features when you run SSIS packages on Linux:

  • Integration Services Catalog database
  • Scheduled package execution by SQL Server Agent
  • Windows Authentication
  • Third-party components
  • Change data capture (CDC)
  • Integration Services Scale Out
  • Azure Feature Pack for SSIS
  • Hadoop and HDFS support
  • Microsoft Connector for SAP BW

For a list of built-in SSIS components with limited or no support, see Feature support and considerations for SQL Server Integration Services (SSIS) on Linux.

For more info about SSIS on Linux, see the following articles:

SQL Server Management Studio (SSMS)

The following limitations apply to SQL Server Management Studio on Windows connected to SQL Server on Linux.

  • Maintenance plans aren't supported.

  • Management Data Warehouse (MDW) and the data collector in SQL Server Management Studio aren't supported.

  • SQL Server Management Studio UI components that have Windows Authentication or Windows event log options don't work with Linux. You can still use these features with other options, such as SQL Server logins.

  • You can't modify the number of log files to retain.

High availability and disaster recovery

Applies to: SQL Server 2022 (16.x) only.

When you run SQL Server 2022 (16.x) CU 16 and earlier versions, on RHEL 9 as a confined application with SELinux enabled, Pacemaker clustering might not work as expected. You must install SQL Server 2022 (16.x) as an unconfined application with SELinux turned on to use Pacemaker clustering capabilities. This issue is resolved in SQL Server 2022 (16.x) CU 17.

Machine Learning Services

Applies to: SQL Server 2022 (16.x) only.

For SQL Server 2022 (16.x) packages for RHEL 9 and Ubuntu 22.04, consider these cgroup-v1 prerequisites before you install Machine Learning Services.

  1. As a prerequisite, enable cgroup-v1 as documented in Using cgroupfs to manually manage cgroups Red Hat Enterprise Linux 9 from Red Hat.

  2. Then follow instructions to install SQL Machine Learning Services as documented.

  3. Disable network namespace isolation.

    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Restart mssql-launchpadd service for these changes to take effect.

    sudo systemctl restart mssql-launchpadd
    

Known issues in SQL Server 2025

The following issues affect SQL Server 2025 (17.x).

SQL Server on Linux fails to start on machines with hybrid CPU architecture

Issue: SQL Server instances on Linux might fail to start if the machine uses an Intel 12th Gen or later hybrid architecture CPU, and the host operating system is Linux.

You might see an error message similar to the following output:

Reason: 0x00000004 Message: ASSERT: Expression=(result * DrtlGetProcessorCoreCount() == DrtlGetProcessorCount()) File=LibOS\Windows\Kernel\SQLPal\common\dk\sos\src\sosnumap.cpp Line=208

If you want to use a Linux host operating system, you can work around the issue by disabling efficiency cores (E-cores) in your BIOS. If you use containers, or a hypervisor like Hyper-V on Windows (including WSL), the issue doesn't affect you.

Local ONNX models not supported on Linux operating systems

CREATE EXTERNAL MODEL local ONNX models hosted directly on the SQL Server aren't currently available for Linux on SQL Server 2025 (17.x).