SQL Server sur Linux : problèmes connus

Les sections suivantes décrivent les problèmes connus liés à SQL Server sur Linux.

Général

Le tableau suivant répertorie les problèmes les plus courants liés à SQL Server sur Linux.

Problème Résolution
La longueur du nom d’hôte où SQL Server est installé doit être de 15 caractères ou moins. Changez le nom /etc/hostname en une valeur de 15 caractères ou plus courte.
Régler manuellement l’heure système à rebours fait que SQL Server cesse de mettre à jour l’heure interne du système dans le Moteur de base de données. Redémarrez SQL Server.
Seules les installations à instance unique sont prises en charge. Pour avoir plus d’une instance sur un même hôte, envisagez d’utiliser des machines virtuelles ou des conteneurs Linux.
Gestionnaire de configuration SQL Server ne peut pas se connecter à SQL Server sur Linux. Configuration Manager n'est pas pris en charge sur Linux. Utilisez mssql-conf pour gérer SQL Server sur Linux à la place.
La langue par défaut du compte sa est l'anglais. Changez la langue du compte sa avec l'instruction ALTER LOGIN.
Le fournisseur OLE DB journalise l’avertissement suivant :

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.
Aucune action n’est requise. Le fournisseur OLE DB utilise une signature SHA256. La Moteur de base de données SQL Server ne valide pas correctement le .dll signé.
La commande de réinitialisation du mot de mssql-conf passe affiche l’erreur suivante :

Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information.
Le message d’erreur est un faux négatif. La réinitialisation du mot de passe réussit, et vous pouvez continuer à utiliser le nouveau mot de passe.

S’applique uniquement aux images conteneurs SQL Server 2022 (16.x).

Bases de données

  • Vous ne pouvez pas déplacer la master base de données avec l’utilitaire mssql-conf . Vous pouvez déplacer d’autres bases de données système avec mssql-conf.

  • Lorsque vous restaurez une base de données sauvegardée sur SQL Server sur Windows, vous devez utiliser la clause WITH MOVE dans l’instruction Transact-SQL. Pour plus d’informations, consultez Migrate une base de données SQL Server de Windows vers Linux à l’aide de la sauvegarde et de la restauration.

  • Certains algorithmes (suites de chiffrement) pour transport Layer Security (TLS) ne fonctionnent pas correctement avec SQL Server sur Linux. Ce comportement provoque des défaillances de connexion lorsque vous essayez de vous connecter à SQL Server, et des problèmes pour établir des connexions entre répliques dans des groupes de haute disponibilité.

    Pour résoudre ce problème, modifiez le mssql.conf script de configuration de SQL Server sur Linux afin de désactiver les suites de chiffrement problématiques :

    1. Ajoutez la section suivante à /var/opt/mssql/mssql.conf. Le point d’exclamation (!) annule l’expression. Cette négation dit à OpenSSL de ne pas utiliser la suite de chiffrement qui suit.

      [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. Redémarrez SQL Server avec la commande suivante.

      sudo systemctl restart mssql-server
      
  • Vous ne pouvez pas restaurer SQL Server bases de données 2014 (12.x) sur Windows qui utilisent In-Memory OLTP pour SQL Server sur Linux. Si votre base de données SQL Server 2014 (12.x) utilise In-Memory OLTP, mettez d’abord à niveau les bases de données vers une version plus récente de SQL Server sur Windows. Ensuite, transférez-le sur SQL Server sur Linux, avec sauvegarde/restauration, ou détachez/attachez.

  • Linux ne supporte pas actuellement la ADMINISTER BULK OPERATIONS permission utilisateur.

  • Vous ne pouvez pas restaurer les sauvegardes compressées Transparent Data Encryption (TDE) réalisées avec SQL Server 2019 (15.x), CU 16 et versions ultérieures vers les versions CU précédentes de SQL Server 2019 (15.x). Pour plus d’informations, consultez CORRECTIF : L’erreur 3241 se produit lors de l’exécution de RESTORE LOG ou RESTOREDATABASE.

    Vous pouvez toujours utiliser SQL Server 2019 (15.x), CU 16 et versions ultérieures pour restaurer des sauvegardes compressées TDE, réalisées avec les versions CU précédentes de SQL Server 2019 (15.x).

  • Lorsque vous installez SQL Server 2022 (16.x) sur Ubuntu 22.04, le message d’erreur suivant peut s’afficher : Failed to start Moteur de base de données Microsoft SQL Server. Si vous passez en revue le journal des erreurs, vous voyez un chemin d’accès incorrect pour les bases de données système.

    Pour contourner ce problème, démarrez l’instance en mode mono-utilisateur et utilisez ALTER DATABASE ... MODIFY FILE pour déplacer l’emplacement configuré des bases de données système vers l’emplacement par défaut, /var/opt/mssql/data. Après avoir effectué ce changement, redémarrez le service.

Network (Réseau)

Les fonctionnalités impliquant des connexions TCP sortantes depuis le sqlservr processus, telles que les serveurs liés, PolyBase ou les groupes de disponibilité, peuvent ne pas fonctionner si les deux conditions suivantes s’appliquent :

  • Le serveur cible est spécifié sous la forme d'un nom d'hôte et non d'une adresse IP.

  • IPv6 est désactivé dans le noyau de l'instance source. Pour vérifier si IPv6 est activé dans le noyau sur votre système, tous les tests suivants doivent réussir :

    • cat /proc/cmdline imprime la ligne de commande de démarrage du noyau actuel. La sortie ne doit pas contenir ipv6.disable=1.
    • Le répertoire /proc/sys/net/ipv6/ doit exister.
    • Un programme C qui appelle socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) devrait réussir. L’appel système doit retourner un fd != -1 et ne doit pas échouer avec EAFNOSUPPORT.

L'erreur exacte dépend de la fonctionnalité. Pour les serveurs liés, une erreur de délai d’expiration de connexion apparaît. Pour les groupes de disponibilité, le ALTER AVAILABILITY GROUP JOIN DDL sur le secondaire échoue après cinq minutes avec une download configuration timeout erreur.

Pour contourner ce problème, utilisez l’une des options suivantes :

  • Utilisez des adresses IP au lieu de noms d'hôtes pour spécifier la cible de la connexion TCP.

  • Activez IPv6 dans le noyau en supprimant ipv6.disable=1 de la ligne de commande de démarrage. La méthode dépend de la distribution Linux et du chargeur de démarrage, par exemple le fichier Grub. Si vous ne souhaitez pas que IPv6 soit désactivé, vous pouvez toujours le désactiver en définissant net.ipv6.conf.all.disable_ipv6 = 1 dans la configuration sysctl (par exemple, /etc/sysctl.conf). Bien que ce paramétrage empêche toujours la carte réseau du système d’obtenir une adresse IPv6, il permet aux fonctionnalités de sqlservr de s’exécuter.

TLS 1.3 non pris en charge sur SQL Server 2022

S’applique uniquement à : SQL Server 2022 (16.x).

Bien que TLS 1.3 soit pris en charge sur SQL Server 2022 (16.x) pour Windows, vous devez utiliser TLS 1.2 sur Linux.

Note

TLS 1.3 est pris en charge pour SQL Server 2025 (17.x) sur Ubuntu 22.04, Ubuntu 24.04, RHEL 9 et RHEL 10. TLS 1.3 est activé par défaut.

NFS (Network File System)

Si vous utilisez des partages distants NFS (Network File System) en production, notez les exigences de support suivantes :

  • Utilisez la version 4.2 ou ultérieure de NFS. Les versions antérieures de NFS ne prennent pas en charge les fonctionnalités requises telles que fallocate et la création de fichiers clairsemés, communes aux systèmes de fichiers modernes.

  • Seuls les /var/opt/mssql répertoires sont pris en charge sur la monture NFS. D'autres fichiers, tels que les fichiers binaires système SQL Server, ne sont pas pris en charge.

  • Vérifiez que les clients NFS utilisent l'option nolock lors du montage du partage distant.

Connectivité IPv6 avec authentification Microsoft Entra

Si votre serveur ou conteneur est activé pour IPv6, vérifiez que les adresses IPv6 sont accessibles et routables. Si IPv6 n'est pas entièrement configuré, les demandes d'authentification à Microsoft Entra ID peuvent échouer en raison de points de terminaison IPv6 inaccessibles.

Pour contrôler le comportement de résolution DNS IPv6 sur SQL Server 2022 CU 19 et versions ultérieures, définissez l’option network.ipv6dnsrecordslimit dans mssql-conf. Pour plus d’informations, consultez network.ipv6dnsrecordslimit.

Localisation

  • Si vos paramètres régionaux ne sont pas en anglais (en_us) lors de l'installation, vous devez utiliser l'encodage UTF-8 dans votre session/terminal Bash. Si vous utilisez l'encodage ASCII, vous pouvez voir une erreur semblable à la production suivante :

    UnicodeEncodeError : le codec « ascii » ne peut pas encoder le caractère u'\xf1' à la position 8 : l'ordinal n'est pas dans la plage (128)

    Si vous ne pouvez pas utiliser l’encodage UTF-8, lancez la configuration avec la MSSQL_LCID variable environnement pour spécifier votre choix de langage.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • Lorsque vous exécutez mssql-conf setup et effectuez une installation non anglaise de SQL Server, vous pouvez voir des caractères étendus incorrects après le texte localisé, « Configuring SQL Server... ". Ou, pour les installations non latines, la phrase peut manquer complètement. La phrase manquante doit afficher la chaîne localisée suivante :

    Le PID de gestion des licences a été traité avec succès. La nouvelle édition est l'édition [<Nom>].

    Cette chaîne apparaît uniquement à titre informatif et n'affecte pas l'installation de SQL Server.

Tous les filtres ne sont pas disponibles avec cette version, y compris les filtres pour les documents Microsoft Office. Pour obtenir la liste des filtres pris en charge, consultez Installer la recherche SQL Server Full-Text sur Linux.

Services d’intégration SQL Server (SSIS)

Le package mssql-server-is n’est pas pris en charge sur SUSE Linux Enterprise Server (SLES). Le package est pris en charge sur Ubuntu et Red Hat Enterprise Linux (RHEL).

Les packages Integration Services peuvent utiliser des connexions ODBC sur Linux. Cette fonctionnalité fonctionne avec les pilotes SQL Server et MySQL ODBC, et devrait également fonctionner avec tout pilote Unicode ODBC respectant la spécification ODBC. Au moment de la conception, prévoyez soit un DSN, soit une chaîne de connexion pour se connecter aux données ODBC ; vous pouvez également utiliser l’authentification Windows. Pour plus d'informations, consultez le billet de blog annonçant le support d'ODBC sur Linux.

Cette version ne prend pas en charge les fonctionnalités suivantes lorsque vous exécutez des paquets SSIS sous Linux :

  • Integration Services Base de données de catalogue
  • Exécution de package planifiée par SQL Server Agent
  • Authentification Windows
  • Composants tiers
  • Capture des changements de données (CDC)
  • Mise à l'échelle des services d'intégration
  • Azure Feature Pack pour SSIS
  • Support Hadoop et HDFS
  • connecteur Microsoft pour SAP BW

Pour une liste des composants SSIS intégrés avec un support limité ou nul, voir Prise en charge des fonctionnalités et considérations pour SQL Server Integration Services (SSIS) sous Linux.

Pour plus d'informations concernant SSIS sur Linux, consultez les articles suivants :

SQL Server Management Studio (SSMS)

Les limitations suivantes s’appliquent aux SQL Server Management Studio sur Windows connectées à SQL Server sur Linux.

  • Les plans de maintenance ne sont pas pris en charge.

  • Les Data Warehouse de gestion (MDW) et le collecteur de données dans SQL Server Management Studio ne sont pas pris en charge.

  • Les composants de l'interface utilisateur de SQL Server Management Studio qui comprennent l'authentification Windows ou les options du journal des événements Windows ne fonctionnent pas avec Linux. Vous pouvez toujours utiliser ces fonctionnalités avec d’autres options, telles que les connexions SQL Server.

  • Vous ne pouvez pas modifier le nombre de fichiers journaux à conserver.

Haute disponibilité et récupération d’urgence

S’applique uniquement à : SQL Server 2022 (16.x).

Lorsque vous exécutez SQL Server 2022 (16.x) CU 16 et versions antérieures, sur RHEL 9 en tant qu’application limitée avec SELinux activé, le clustering Pacemaker peut ne pas fonctionner comme prévu. Vous devez installer SQL Server 2022 (16.x) en tant qu’application libre avec SELinux activé pour utiliser les capacités de clustering Pacemaker. Ce problème est résolu dans SQL Server 2022 (16.x) CU 17.

Services de Machine Learning

S’applique uniquement à : SQL Server 2022 (16.x).

Pour les packages SQL Server 2022 (16.x) pour RHEL 9 et Ubuntu 22.04, considérez ces cgroup-v1 prérequis avant d’installer Machine Learning Services.

  1. À titre de prérequis, activez cgroup-v1 , comme documenté dans Using cgroupfs, la gestion manuelle de cgroups Red Hat Enterprise Linux 9 depuis Red Hat.

  2. Suivez ensuite les instructions pour installer SQL Machine Learning Services comme documenté.

  3. Désactivez l’isolation de l’espace de noms réseau.

    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Redémarrez le service mssql-launchpadd pour que les modifications prennent effet.

    sudo systemctl restart mssql-launchpadd
    

Problèmes connus dans SQL Server 2025

Les problèmes suivants affectent SQL Server 2025 (17.x).

SQL Server sur Linux ne parvient pas à démarrer sur les machines avec l’architecture du processeur hybride

Issue : SQL Server instances sur Linux risquent de ne pas démarrer si la machine utilise un processeur d’architecture hybride Intel 12th Gen ou version ultérieure, et que le système d’exploitation hôte est Linux.

Vous pouvez voir un message d’erreur similaire à la sortie suivante :

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

Si vous souhaitez utiliser un système d’exploitation hôte Linux, vous pouvez contourner le problème en désactivant les cœurs d’efficacité (cœurs E) dans votre BIOS. Si vous utilisez des conteneurs, ou un hyperviseur comme Hyper-V sur Windows (y compris WSL), le problème ne vous affecte pas.

Modèles ONNX locaux non pris en charge sur les systèmes d’exploitation Linux

CREATE EXTERNAL MODEL modèles ONNX locaux hébergés directement sur le SQL Server ne sont pas actuellement disponibles pour Linux sur SQL Server 2025 (17.x).