web-dev-qa-db-fra.com

SQL Server sur Ubuntu - Une connexion existante a été fermée de force par l'hôte distant après le redémarrage

J'exécute SQL Server sur Ubuntu depuis un certain temps et tout a bien fonctionné mais j'ai redémarré le serveur et maintenant toutes les connexions à SQL Server échouent avec l'erreur:

A connection was successfully established with the server, but then an error occurred during the login process. 
(provider: SSL Provider, error: 0 - 
An existing connection was forcibly closed by the remote Host.) 
(Microsoft SQL Server, Error: 10054)

J'ai essayé de désinstaller et de réinstaller SQL Server, de définir diverses valeurs mssql-conf (depuis supprimées à nouveau), etc. mais rien de ce que je fais ne fait de différence.

Les articles relatifs à Windows semblent indiquer qu'il est lié à SSL, mais SSL n'était pas activé. J'ai essayé de l'activer et de définir un certificat, mais même si j'ai accordé des autorisations au certificat et à la clé privée 777 et que je me suis montré à l'utilisateur/groupe mssql, il m'a juste dit qu'il ne pouvait pas le lire, puis SQL Server n'a pas pu démarrer j'ai donc retiré à nouveau.

Quelqu'un peut-il suggérer quoi que ce soit que je puisse faire pour le faire fonctionner à nouveau s'il vous plaît car je suis à court d'idées?

Merci Robin

5
Robin Wilson

MSSQL attend OpenSSL v1.0 tandis qu'Ubuntu 18+ utilise OpenSSL 1.1, résultant en un incompatibilité de version OpenSSL. La solution consiste à lier symétriquement ssl v1.0 comme ci-dessous:

  1. Arrêtez SQL Server

    Sudo systemctl stop mssql-server
    
  2. Ouvrez l'éditeur pour la configuration du service

    Sudo systemctl edit mssql-server
    
  3. Dans l'éditeur, ajoutez les lignes suivantes au fichier et enregistrez-le:

    [Service]
    Environment="LD_LIBRARY_PATH=/opt/mssql/lib"
    
  4. Créer des liens symboliques vers OpenSSL 1.0 pour SQL Server à utiliser

    Sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 /opt/mssql/lib/libssl.so
    
    Sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /opt/mssql/lib/libcrypto.so
    
  5. Démarrez SQL Server

    Sudo systemctl start mssql-server
    
8
Dawoodjee