it-swarm.com.de

SQL Server unter Ubuntu - Eine vorhandene Verbindung wurde nach dem Neustart vom Remote-Host zwangsweise geschlossen

Ich habe SQL Server für eine Weile unter Ubuntu ausgeführt und alles hat einwandfrei funktioniert, aber ich habe den Server neu gestartet und jetzt schlagen alle Verbindungen zu SQL Server mit dem Fehler fehl:

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)

Ich habe versucht, SQL Server zu deinstallieren und neu zu installieren, verschiedene mssql-conf-Werte festzulegen (seitdem wieder entfernt) usw., aber nichts, was ich tue, macht einen Unterschied.

Artikel, die sich auf Windows beziehen, scheinen darauf hinzudeuten, dass es sich um SSL handelt, aber SSL wurde nicht aktiviert. Ich habe versucht, es zu aktivieren und ein Zertifikat festzulegen, aber obwohl ich Berechtigungen für das Zertifikat und den privaten Schlüssel 777 erteilt und an den Benutzer/die Gruppe mssql weitergeleitet habe, wurde mir nur mitgeteilt, dass es nicht gelesen werden konnte, und dann konnte SQL Server nicht gestartet werden also habe ich wieder entfernt.

Kann jemand etwas vorschlagen, was ich tun kann, um es wieder zum Laufen zu bringen, da ich keine Ideen mehr habe?

Danke Robin

5
Robin Wilson

MSSQL erwartet OpenSSL v1.0, während Ubuntu 18+ OpenSSL 1.1 verwendet, was zu einer Nichtübereinstimmung der OpenSSL-Version führt. Die Lösung besteht darin, ssl v1.0 wie folgt zu verknüpfen:

  1. Stoppen Sie SQL Server

    Sudo systemctl stop mssql-server
    
  2. Öffnen Sie den Editor für die Dienstkonfiguration

    Sudo systemctl edit mssql-server
    
  3. Fügen Sie im Editor die folgenden Zeilen zur Datei hinzu und speichern Sie sie:

    [Service]
    Environment="LD_LIBRARY_PATH=/opt/mssql/lib"
    
  4. Erstellen Sie symbolische Links zu OpenSSL 1.0, damit SQL Server sie verwenden kann

    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. Starten Sie SQL Server

    Sudo systemctl start mssql-server
    
8
Dawoodjee