Herstellen einer Verbindung zu einem lokalen MS SQL Server von einem GUI-Client aus


11

Ich bin sehr neu in SQL und Datenbankservern. Ich habe kürzlich SQL Server Express verwendet und mit SQL Server Management Studio unter Windows auf meine Datenbank zugegriffen. Ich versuche jetzt, ein ähnliches Setup auf einem Linux-Computer zu erreichen.

Ich möchte eine lokale SQL Server-Instanz auf dem Computer erstellen und dann SQLectron als GUI-Client zum Abfragen meiner Datenbank verwenden. Ich verwende Manjaro Linux und installiere meine Pakete von der AUR.

Bisher habe ich installiert mssql-server, mssql-toolsund sqlectron-gui. Ich habe den sudo /opt/mssql/bin/mssql-conf setupBefehl ausgeführt, um (glaube ich) einen lokalen Server einzurichten. Danach gibt das Ausführen des Befehls systemctl status mssql-serverFolgendes zurück:

[kev @ XPS-Manjaro ~] $ systemctl status mssql-server
● mssql-server.service - Microsoft SQL Server-Datenbankmodul
Geladen: geladen (/usr/lib/systemd/system/mssql-server.service; aktiviert; Hersteller-Voreinstellung: deaktiviert)
Aktiv: aktiv (läuft) seit Mi 2017-08-23 13:43:49 IST; Vor 2h 42min
    Dokumente: https://docs.microsoft.com/en-us/sql/linux
Haupt-PID: 9130 (sqlservr)
    Aufgaben: 165
CGroup: /system.slice/mssql-server.service
        30─9130 / opt / mssql / bin / sqlservr
        14─9144 / opt / mssql / bin / sqlservr

23. August 13:43:52 XPS-Manjaro sqlservr [9130]: [145B Blob-Daten]
23. August 13:43:52 XPS-Manjaro sqlservr [9130]: [66B-Blob-Daten]
23. August 13:43:52 XPS-Manjaro sqlservr [9130]: [96B-Blob-Daten]
23. August 13:43:52 XPS-Manjaro sqlservr [9130]: [100B-Blob-Daten]
23. August 13:43:52 XPS-Manjaro sqlservr [9130]: [71B-Blob-Daten]
23. August 13:43:52 XPS-Manjaro sqlservr [9130]: [124B-Blob-Daten]
23. August 13:49:03 XPS-Manjaro sqlservr [9130]: [156B Blob-Daten]
23. August 13:49:03 XPS-Manjaro sqlservr [9130]: [194B Blob-Daten]
23. August 13:52:31 XPS-Manjaro sqlservr [9130]: [74B-Blob-Daten]
23. August 13:52:31 XPS-Manjaro sqlservr [9130]: [199B Blob-Daten]

Ich versuche jetzt, über SQLectron auf dem folgenden Bildschirm eine lokale Verbindung zu meinem Server herzustellen:

Geben Sie hier die Bildbeschreibung ein

Da ich nur sehr wenig Erfahrung mit SQL-Servern habe, weiß ich nicht, wo ich all diese Anmeldeinformationen für die Verbindung mit meinem lokalen Server erhalten kann. Das einzige, das ich kenne, ist das Passwort, das ich im sudo /opt/mssql/bin/mssql-conf setupBefehl festgelegt habe.

Wie finde ich den Servernamen, die Hostadresse (127.0.0.1?), Den Port, die Domäne, den Unix-Socket-Pfad und den Benutzernamen?


Ich habe nur mit SQL Server unter Windows gearbeitet, aber wenn einige Begriffe helfen würden: Name wäre der Name des Servers (und der Instanz, falls erforderlich); nach dem, was du sagst, addresssollte 127.0.0.1` funktionieren; portsollte beim Einrichten des Servers festgelegt worden sein (Standard ist normalerweise 1433); userwäre in die Benutzername Sie protokollieren möchten (wahrscheinlich könnte ein Linux - Benutzerkonto oder ein SQL Server - Konto (wie sein sa) und passworddas Passwort für das Konto. Databaseund Schemawürde die Standard - Datenbank und das Schema, Sie verbinden würden; try masterund leer, oder masterund dbo.
RDFozz

Antworten:


7

Wenn Sie die GUI auf demselben Computer wie den mssql-Server-Dienst ausführen, können Sie localhost für die Adresse (127.0.0.1) verwenden. Wenn Sie die GUI von einer anderen Workstation aus ausführen, benötigen Sie die IPv4-Adresse des Computers, auf dem der mssql-Server-Dienst ausgeführt wird. Sie erhalten dies, indem Sie ifconfigan einer Linux-Terminal-Eingabeaufforderung ausführen. Beispielausgabe von ifconfig:

eth0: flags = 4163 mtu 1500
        Ether 00: 15: 5d: 89: 45: 01 txqueuelen 1000 (Ethernet)
        Empfangspakete 423 Bytes 137827 (134,5 KiB)
        RX-Fehler 0 fallen gelassen 0 überschreitet 0 Frame 0
        TX-Pakete 0 Bytes 0 (0,0 B)
        TX-Fehler 0 fallen gelassen 0 Überläufe 0 Träger 0 Kollisionen 0

eth1: flags = 4163 mtu 1500
        inet 192.168.200.11 Netzmaske 255.255.255.0 Broadcast 192.168.200.255
        inet6 fe80 :: 2f70: 9d15: 8e7d: 16cb prefixlen 64 scopeid 0x20
        Ether 00: 15: 5d: 89: 45: 04 txqueuelen 1000 (Ethernet)
        RX-Pakete 20138 Bytes 2006000 (1,9 MiB)
        RX-Fehler 0 fallen gelassen 0 überschreitet 0 Frame 0
        TX-Pakete 19756 Bytes 30125657 (28,7 MiB)
        TX-Fehler 0 fallen gelassen 0 Überläufe 0 Träger 0 Kollisionen 0

lo: flags = 73 mtu 65536
        inet 127.0.0.1 netmask 255.0.0.0
        inet6 :: 1 Präfix 128 scopeid 0x10
        loop txqueuelen 1 (Local Loopback)
        Empfangspakete 3239 Bytes 361340 (352,8 KiB)
        RX-Fehler 0 fallen gelassen 0 überschreitet 0 Frame 0
        TX-Pakete 3239 Bytes 361340 (352,8 KiB)
        TX-Fehler 0 fallen gelassen 0 Überläufe 0 Träger 0 Kollisionen 0

In der obigen Ausgabe ist das wichtige Bit die "inet" -Adresse, in meinem Fall 192.168.200.11.

Der Standardport für SQL Server ist 1433 - es sei denn, Sie haben in mssql-conf einen anderen Port ausgewählt, verwenden Sie diese Portnummer. Stellen Sie sicher, dass die Firewall auf der Linux-Box externe Verbindungen über 1433 zulässt, wenn Sie über das Netzwerk eine Verbindung zu SQL Server herstellen möchten.

Verwenden Sie saals Anmeldung und das Kennwort, das Sie während der SQL Server-Einrichtung über den sudo /opt/mssql/bin/mssql-conf setupBefehl angegeben haben.

Ich würde den Domain- und Unix-Socket-Pfad leer lassen.

Sobald Sie eine Verbindung zur Instanz hergestellt haben, möchten Sie möglicherweise ein Nicht-Sa-Konto konfigurieren. Mach das mit der CREATE LOGINAussage .

Nur zu Ihrer Information, Sie können SQL Server Management Studio verwenden, um eine Verbindung zu SQL Server unter Linux herzustellen, wenn Sie dies wünschen.


Wie kann ich in Bezug auf Ihre FYI die SSMS-GUI unter Linux erhalten? Ich habe beide installiert mssql-serverund mssql-tools- weder welche scheinen irgendeine Art von GUI-Anwendung oder irgendetwas in Bezug auf SSMS installiert zu haben. Da ich mit SSMS am besten vertraut bin, würde ich es lieber weiter verwenden, hätte aber nicht gedacht, dass es unter Linux verfügbar ist.
KOB

Oh nein, ich meinte, Sie könnten SSMS auf einer Windows-Workstation ausführen und das mit SQL Server unter Linux verbinden.
Max Vernon

Oh ok, das dachte ich mir. Nein, ich experimentiere nur und möchte nur, dass alles von meinem Linux-Computer ausgeführt wird.
KOB

Ein letzter Hinweis: Wenn ich jetzt über ein Python-Skript auf meine Datenbank zugreifen möchte, muss ich dann nur mein Nicht-Sa-Konto wie von Ihnen erwähnt konfigurieren und dann einen Treiber installieren? Ich habe den ODBC-Treiber verwendet, wenn ich unter Windows gearbeitet habe. In meinem Pyton-Skript unter Windows habe ich meinen Servernamen für die Verbindungs-Engine von SSMS in Form von erhalten CPX-9GL9XXXXXXX\SQLEXPRESS. Wie kann ich diesen entsprechenden Servernamen finden, ohne Zugriff auf SSMS zu haben?
KOB

SQL Server - Browser verwendet SQL Server - Instanzen zu finden , ohne die Portnummer im Voraus zu wissen ... so für CPX-9GL9XXXXXXX\SQLEXPRESS-> SQLEXPRESSist die Instanz Name , der von SQL Server - Browser - Dienst in eine Portnummer übersetzt werden würde. Leider wird der SQL Server-Browser unter Linux noch nicht unterstützt , daher müssen Sie die Portnummer kennen, die standardmäßig 1433 lautet.
Max Vernon
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.