Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
masterbase de données avec l’utilitairemssql-conf. Vous pouvez déplacer d’autres bases de données système avecmssql-conf.Lorsque vous restaurez une base de données sauvegardée sur SQL Server sur Windows, vous devez utiliser la clause
WITH MOVEdans 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.confscript de configuration de SQL Server sur Linux afin de désactiver les suites de chiffrement problématiques :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-SHARedé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 OPERATIONSpermission 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 FILEpour 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/cmdlineimprime la ligne de commande de démarrage du noyau actuel. La sortie ne doit pas conteniripv6.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 unfd != -1et ne doit pas échouer avecEAFNOSUPPORT.
-
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=1de 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éfinissantnet.ipv6.conf.all.disable_ipv6 = 1dans la configurationsysctl(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 desqlservrde 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
fallocateet la création de fichiers clairsemés, communes aux systèmes de fichiers modernes.Seuls les
/var/opt/mssqlré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
nolocklors 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_LCIDvariable environnement pour spécifier votre choix de langage.sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setupLorsque vous exécutez
mssql-conf setupet 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.
Recherche en texte intégral
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 :
- Billet de blog annonçant le support SSIS pour Linux.
- Installer SQL Server Integration Services (SSIS) sur Linux
- Extraire, transformer et charger des données sur Linux avec SSIS
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.
À 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.Suivez ensuite les instructions pour installer SQL Machine Learning Services comme documenté.
Désactivez l’isolation de l’espace de noms réseau.
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1Redémarrez le service
mssql-launchpaddpour 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).