Ich versuche, den ms-sql-Server unter Linux einzurichten, indem ich der Dokumentation https://docs.microsoft.com/pl-pl/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-2017 folge
Der SQL Server-Status lautet Aktiv (Wird ausgeführt).
Beim Ausführen des Befehls wird der folgende Fehler angezeigt
sqlcmd -S localhost -U SA -P '<YourPassword>'
Error:
SQLcmd: Fehler: Microsoft ODBC-Treiber 17 für SQL Server: TCP-Anbieter: Fehlercode 0x2746. SQLqd: Fehler: Microsoft ODBC-Treiber 17 für SQL Server: Client kann keine Verbindung herstellen.
Ich habe es auch versucht, indem ich den Befehl gegeben habe
sqlcmd -S 127.0.0.1 -U SA -P '<YourPassword>'
Es wird jedoch der gleiche Fehler angezeigt. Wenn ich das falsche Passwort ausprobiert habe, wird auch der gleiche Fehler angezeigt.
sql-server
linux
tcpclient
Suba Nandhini K.
quelle
quelle
Antworten:
[UPDATE 17.03.2020: Microsoft hat SQL Server 2019 CU3 mit einem Ubuntu 18.04-Repository veröffentlicht. Siehe: https://techcommunity.microsoft.com/t5/sql-server/sql-server-2019-now-available-on-ubuntu-18-04-supported-on-sles/ba-p/1232210 . Ich hoffe, dass dies jetzt ohne SSL-Probleme voll kompatibel ist. Ich habe es nicht getestet.]
Das Zurücksetzen auf 14.0.3192.2-2 hilft.
Es ist jedoch möglich, das Problem auch mit der von Ola774 angegebenen Methode zu lösen, nicht nur bei einem Upgrade von Ubuntu 16.04 auf 18.04, sondern bei jeder Installation von SQL Server 2017 unter Ubuntu 18.04.
Es scheint, dass Microsoft jetzt in cu16 einen eigenen Patch für die in cu10 angewendeten Probleme mit der SSL-Version durcheinander gebracht hat ( https://techcommunity.microsoft.com/t5/SQL-Server/Installing-SQL-Server-2017-for-Linux) -on-Ubuntu-18-04-LTS / ba-p / 385983 ). Das Verknüpfen der SSL 1.0.0-Bibliotheken funktioniert jedoch.
Gehen Sie also einfach wie folgt vor:
Stoppen Sie SQL Server
sudo systemctl stop mssql-server
Öffnen Sie den Editor für die Dienstkonfiguration von
Dadurch wird eine Überschreibung für die ursprüngliche Dienstkonfiguration erstellt. Es ist richtig, dass die Override-Datei, genauer gesagt "Drop-in-File", bei der ersten Verwendung leer ist.
Fügen Sie im Editor die folgenden Zeilen zur Datei hinzu und speichern Sie sie:
Erstellen Sie symbolische Links zu OpenSSL 1.0, damit SQL Server Folgendes verwenden kann:
Starten Sie SQL Server
sudo systemctl start mssql-server
quelle
sudo apt-get install mssql-server=14.0.3192.2-2
Das Zurücksetzen auf diese Version hat bei mir funktioniert.
Mein Szenario war eine Neuinstallation (alles neueste Version) auf Ubuntu Server 18.04.2, bei der der Clientverbindungsfehler von sqlcmd empfangen wurde:
SQLcmd: Fehler: Microsoft ODBC-Treiber 17 für SQL Server: TCP-Anbieter: Fehlercode 0x2746
quelle
Wenn Sie Probleme mit dem Client unter Debian 10 mit OpenSSL1.1.1 haben, müssen Sie auf die zuvor standardmäßig schwächere Schlüssellänge zurückgreifen. Um dies zu tun:
Ändern
/etc/ssl/openssl.cnf
Konfigurationsdatei wie folgt (siehe bekannte Probleme mit OpenSSL 1.1.1 in Debian 10 unten):Ändern Sie die letzte Zeile von
CipherString = DEFAULT@SECLEVEL=2
nachCipherString = DEFAULT@SECLEVEL=1
https://github.com/microsoft/msphpsql/issues/1021
https://wiki.debian.org/ContinuousIntegration/TriagingTips/openssl-1.1.1
quelle
/etc/ssl/openssl.cnf
und für den Prozess, der mit SQL Server kommunizieren muss, die Umgebungsvariable so einstellenOPENSSL_CONF
, dass sie darauf verweist.Ein Upgrade von Ubuntu 16.04 auf 18.04 führt immer noch zu einigen Problemen
Für einige Systeme ist möglicherweise Version 1.0 der OpenSSL-Bibliotheken erforderlich, um eine Verbindung zu SQL Server herzustellen. Die Verwendung von OpenSSL 1.0 kann wie folgt erfolgen:
Stoppen Sie SQL Server
sudo systemctl stop mssql-server
Öffnen Sie den Editor für die Dienstkonfiguration
Fügen Sie im Editor die folgenden Zeilen zur Datei hinzu und speichern Sie sie:
Erstellen Sie symbolische Links zu OpenSSL 1.0, damit SQL Server sie verwenden kann
Starten Sie SQL Server
sudo systemctl start mssql-server
ich hoffe das hilft
quelle
Sie können entweder Rollback auf die vorherige Version mit dem Befehl sudo
apt-get install mssql-server=14.0.3192.2-2
oder halten Sie die neue Version von folgenden MSSQL_Ubuntu Antwort .Auch deaktivieren Sie die Updates auf dem MSSQL-Server - Paket:
Dies hindert Sie nicht daran, es manuell zu aktualisieren, wenn Sie dies wünschen.
quelle
Einfach:
TCP-Anbieter: Fehlercode 0x2746
Dies ist wahrscheinlich ein Problem mit dem Protokoll / der Version von openssl vs. sql-server.
Überprüfen Sie Ihre openssl-Version. Führen Sie den folgenden Befehl auf Ihrem Terminal aus
openssl version
:Wenn Ihre openssl-Version nicht 1.0 ist, möchten Sie das Verbindungsproblem möglicherweise mit einer der folgenden Optionen lösen:
Option 1: Umgehen Sie Ihr openssl
Ja, es ist .cnf.
Dieser Befehl ändert Ihr SECLEVEL in 1, wenn Sie es in Ihrer
/etc/ssl/openssl.cnf
Datei haben. Getan.Option 2: Downgrade openssl.
Wenn Ihre openssl-Version 1.1 ist, möchten Sie wahrscheinlich 1.0. Diese Methode ist grundlegend: Laden Sie den Quellcode herunter, konfigurieren Sie die Binärdatei und erstellen Sie sie. Es kann einige Minuten dauern, bis alles fertig ist:
cd /usr/local/src/ wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1k.tar.gz tar -xvf /usr/local/src/openssl-1.0.1k.tar.gz cd /usr/local/src/openssl-1.0.1k ./config --prefix=/usr/local/ --openssldir=/usr/local/openssl make make test make install mv /usr/bin/openssl /usr/bin/openssl-bak
dann
oder
Hinterlassen Sie Kommentare, wenn Sie Einblicke für etwas Besonderes benötigen: Docker-Image oder ein anderes System usw.
quelle
/etc/ssl/openssl.cnf
und für den Prozess, der mit SQL Server kommunizieren muss, die Umgebungsvariable so einstellenOPENSSL_CONF
, dass sie darauf verweist.Gleiches Problem. Es ist schrecklich, weil ich jetzt in der Entwicklung bin und dieses "großartige" Update nur meine Arbeitszeit tötet.
Update: Das Rollback der MS SQL-Version hat mir geholfen, aber leider muss ich alle meine Daten entfernen. Danke, dass es meine Entwicklungsmaschine war. Alle Hinweise unten getestet am
ijin -> lsb_release -a No LSB modules are available. Distributor ID: LinuxMint Description: Linux Mint 19 Tara Release: 19 Codename: tara
1) Ich habe MS SQL und seine Daten entfernt
sudo rm -rf /var/opt/mssql sudo apt-get purge mssql-server mssql-tools sudo apt-get autoremove sudo apt-get autoclean
2) Überprüfen Sie die verfügbaren Versionen von MS SQL im Repository
ijin -> apt-cache policy mssql-server
3) Benutzerdefiniertes MS SQL installiert
sudo apt-get install mssql-server=15.0.1600.8-1 mssql-tools
4) Einrichtung
5) Mem Limit, Server Agent
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 3072
4) Neustart, Status
Wahrscheinlich gibt es einige Probleme mit der Interaktion von openssl- Paket und aktualisiertem MS SQL. Ich kann nicht feststellen, ob es wahr ist oder nicht, habe aber ein paar Anmerkungen dazu gegoogelt. So können Sie verwenden
apt-cache policy openssl sudo apt-get install openssl=<version> openssl version
Um die openssl-Version zu ändern und eine Verbindung herzustellen.
quelle
SQL Server wurde heute auf die Version 14.0.3223.3-15 (Ubuntu 18.04.2 LTS) aktualisiert und hat genau das gleiche Problem für lokale und Remoteverbindungen. Das Zurücksetzen auf die vorherige Version (in meinem Fall 14.0.3192.2-2) hat bei mir funktioniert:
sudo apt-get install mssql-server=14.0.3192.2-2
Listen Sie die auf Ihrem Computer installierten Versionen auf:
apt-cache policy mssql-server
quelle
Nachdem ich einige Lösungen ausprobiert hatte, fand ich Folgendes:
https://www.youtube.com/watch?v=mfLbCarRzpg
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 sudo systemctl stop mssql-server sudo systemctl edit mssql-server
Fügen Sie diese Zeilen hinzu:
Starten Sie dann den Server neu:
sudo systemctl start mssql-server
quelle
Ich hatte das gleiche Problem in einem Docker-Container. Ich musste msodbc, mssql-tools und lib ssl herunterstufen:
RUN ACCEPT_EULA=Y apt-get install msodbcsql17=17.3.1.1-1 mssql-tools=17.3.0.1-1 -y RUN wget http://security.debian.org/debian-security/pool/updates/main/o/openssl1.0/libssl1.0.2_1.0.2s-1~deb9u1_amd64.deb \ && dpkg -i libssl1.0.2_1.0.2s-1~deb9u1_amd64.deb
Jetzt funktioniert es wie ein Zauber.
Nur für den Fall, ältere Versionen des ms odbc-Treibers und der Tools finden Sie hier: https://packages.microsoft.com/debian/9/prod/pool/main/m/
Für openssl: http://security-cdn.debian.org/debian-security/pool/updates/main/o/openssl1.0/
quelle
msodbcsql17=17.3.1.1-1
Paket nicht gefunden.Ich habe das gleiche Problem mit SQL Server 2019 (RTM - 15.0.2000.5) unter Debian 10 festgestellt. Beide haben versucht, eine lokale Verbindung mit sqlcmd oder remote über SSMS herzustellen.
Die gleiche Auflösung wie oben erwähnt konnte dies für mich lösen. Meine OpenSSL-Version war 1.0.2, dies sollte für jede verfügbare Version angepasst werden.
Jetzt funktionieren sowohl lokale als auch Remoteverbindungen einwandfrei
quelle
In diesem Moment funktioniert nur diese Version, sieht aus wie ein Problem in openssl.
Arbeiten an Debian 9.
Stellen Sie vor allem sicher, dass Sie eine gültige Sicherung der Datenbank haben.
Sie müssen mssql-server löschen
apt-get remove --purge mssql-server
und danach überprüfen und löschen Sie / var / opt / mssql und / opt / mssql.
Verwenden Sie als nächstes diese Version 15.0.1700.37-2
apt-get install mssql-server = 15.0.1700.37-2
Nach der Konfiguration sollten Sie in der Lage sein, eine Verbindung zum MSSQL-Server 2019 unter localhost oder 127.0.0.1 herzustellen
sqlcmd -S localhost -U SA -P 'YourPassword'
quelle
Nach 2 Tagen Arbeit an diesem Problem habe ich es endlich gelöst! In meinem Fall verwende ich Fedora 28, daher habe ich für Benutzer von RHEL dieses Tutorial befolgt:
Installieren von Microsoft SQL Server unter Red Hat Enterprise Linux 8 Beta
Verwenden Sie Python 3? Anscheinend müssen Sie vor der Installation zu Python 2 wechseln, indem Sie den folgenden Code verwenden (ich denke, in Ubuntu würde das auch funktionieren):
sudo alternatives --config python
Erstellen Sie ein Repository unter https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
Laden Sie es herunter und installieren Sie es, ohne Abhängigkeiten aufzulösen.
Danach können Sie das Setup für mssql-conf ausführen:
Fahren Sie ab diesem Schritt mit dem Microsoft-Dokumentations-Tutorial fort.
Microsoft Tutorial zur Installation von SQL Server 2017 unter RHEL
Microsoft Tutorial zur Installation von SQL Server 2017 unter Ubuntu
Hinweis: Ich habe in einigen Foren gelesen, dass SQL Server 2019 dieses Problem möglicherweise verursacht. Daher empfehle ich, die Version 2017 zu installieren.
quelle
Ich habe das gleiche Problem.
Mein Betriebssystem ist Ubuntu 18.10
sudo apt-get install mssql-server=14.0.3192.2-2
In meinem Fall konnte ich meinen SQL Server nicht eingeben, da die folgende Meldung angezeigt wurde
Dann folgte ich der ServerFault-Antwort
In meinem Fall dauerte jeder Befehl eine Weile.
quelle