Łączenie się z lokalnym serwerem MS SQL Server z klienta GUI

11

Jestem bardzo nowy w SQL i serwerach baz danych. Ostatnio korzystam z SQL Server Express i uzyskuję dostęp do mojej bazy danych za pomocą SQL Server Management Studio w systemie Windows. Próbuję teraz osiągnąć podobną konfigurację na komputerze z systemem Linux.

Chciałbym utworzyć lokalną instancję SQL Server na komputerze, a następnie użyć SQLectron jako klienta GUI do przeszukiwania mojej bazy danych. Korzystam z Manjaro Linux, więc instaluj moje pakiety z AUR.

Do tej pory mam zainstalowane mssql-server, mssql-toolsi sqlectron-gui. Uruchomiłem sudo /opt/mssql/bin/mssql-conf setuppolecenie, aby (jak sądzę) skonfigurować lokalny serwer. Po wykonaniu tej czynności polecenie systemctl status mssql-serverzwraca:

[kev @ XPS-Manjaro ~] $ systemctl status mssql-server
● mssql-server.service - Aparat baz danych Microsoft SQL Server
Załadowano: załadowano (/usr/lib/systemd/system/mssql-server.service; włączony; preset dostawcy: wyłączony)
Aktywny: aktywny (działa) od śr. 23.08.2017 13:43:49 IST; 2 godz. 42 min. Temu
    Dokumenty: https://docs.microsoft.com/en-us/sql/linux
Główny PID: 9130 (sqlservr)
    Zadania: 165
CGroup: /system.slice/mssql-server.service
        ├─9130 / opt / mssql / bin / sqlservr
        └─9144 / opt / mssql / bin / sqlservr

23 sierpnia 13:43:52 XPS-Manjaro sqlservr [9130]: [dane BLOB 145B]
23 sierpnia 13:43:52 XPS-Manjaro sqlservr [9130]: [66B blob data]
23 sierpnia 13:43:52 XPS-Manjaro sqlservr [9130]: [Dane BLOBa 96B]
23 sierpnia 13:43:52 XPS-Manjaro sqlservr [9130]: [Dane blob 100B]
23 sierpnia 13:43:52 XPS-Manjaro sqlservr [9130]: [71B blob data]
23 sierpnia 13:43:52 XPS-Manjaro sqlservr [9130]: [124B danych blobu]
23 sierpnia 13:49:03 XPS-Manjaro sqlservr [9130]: [dane BLOB 156B]
23 sierpnia 13:49:03 XPS-Manjaro sqlservr [9130]: [194B danych obiektów blob]
23 sierpnia 13:52:31 XPS-Manjaro sqlservr [9130]: [74B blob data]
23 sierpnia 13:52:31 XPS-Manjaro sqlservr [9130]: [199B danych obiektów blob]

Próbuję teraz utworzyć połączenie lokalne z moim serwerem za pomocą SQLectron na następującym ekranie:

wprowadź opis zdjęcia tutaj

Ponieważ mam bardzo małe doświadczenie z serwerami SQL, jestem całkowicie zagubiony, skąd wziąć wszystkie te poświadczenia, aby połączyć się z moim lokalnym serwerem. Jedyne, co znam, to hasło, które ustawiłem w sudo /opt/mssql/bin/mssql-conf setuppoleceniu.

Jak znaleźć nazwę serwera, adres hosta (127.0.0.1?), Port, domenę, ścieżkę gniazda Unix i nazwę użytkownika?

KOB
źródło
Pracowałem tylko z SQL Server w systemie Windows, ale jeśli niektóre warunki pomogłyby: Nazwa to nazwa serwera (i instancja, jeśli to konieczne); z tego co mówisz, addressponieważ 127.0.0.1` powinno działać; portpowinno być ustawione podczas konfigurowania serwera (domyślnie jest to 1433); userbędzie nazwą użytkownika, na którą chcesz się zalogować (prawdopodobnie może to być konto użytkownika Linux lub konto SQL Server (jak sa), i passwordjest to hasło do tego konta. Databasei Schemabyłby domyślną bazą danych i schematem, z którym się połączysz; spróbuj masteri puste, albo masteri dbo.
RDFozz

Odpowiedzi:

7

Jeśli GUI działa na tym samym komputerze, co usługa serwera mssql, możesz użyć localhost jako adresu (127.0.0.1). Jeśli używasz GUI z innej stacji roboczej, potrzebujesz adresu IPv4 komputera, na którym działa usługa mssql-server. Można to uzyskać, uruchamiając ifconfigz wiersza poleceń systemu Linux. Przykładowe dane wyjściowe z ifconfig:

eth0: flags = 4163 mtu 1500
        ether 00: 15: 5d: 89: 45: 01 txqueuelen 1000 (Ethernet)
        Pakiety RX 423 bajty 137827 (134,5 KiB)
        Błędy RX 0 usunięte 0 przekroczenia 0 ramka 0
        Pakiety TX 0 bajtów 0 (0,0 B)
        Błędy TX 0 usunięte 0 przekroczenia 0 przewoźnik 0 kolizje 0

eth1: flags = 4163 mtu 1500
        inet 192.168.200.11 maska ​​sieci 255.255.255.0 transmisja 192.168.200.255
        inet6 fe80 :: 2f70: 9d15: 8e7d: 16cb prefixlen 64 scopeid 0x20
        ether 00: 15: 5d: 89: 45: 04 txqueuelen 1000 (Ethernet)
        Pakiety RX 20138 bajtów 2006000 (1,9 MiB)
        Błędy RX 0 usunięte 0 przekroczenia 0 ramka 0
        Pakiety TX 19756 bajtów 30125657 (28,7 MiB)
        Błędy TX 0 usunięte 0 przekroczenia 0 przewoźnik 0 kolizje 0

lo: flags = 73 mtu 65536
        inet 127.0.0.1 maska ​​sieci 255.0.0.0
        inet6 :: 1 prefixlen 128 scopeid 0x10
        loop txqueuelen 1 (lokalna pętla zwrotna)
        Pakiety RX 3239 bajtów 361340 (352,8 KiB)
        Błędy RX 0 usunięte 0 przekroczenia 0 ramka 0
        Pakiety TX 3239 bajtów 361340 (352,8 KiB)
        Błędy TX 0 usunięte 0 przekroczenia 0 przewoźnik 0 kolizje 0

Na powyższym wyjściu ważnym bitem jest adres „inet”, który w moim przypadku to 192.168.200.11.

Domyślny port dla SQL Server to 1433 - chyba że w mssql-conf wybierzesz inny port, użyj tego numeru portu. Upewnij się, że zapora sieciowa w systemie Linux zezwala na połączenia zewnętrzne za pośrednictwem 1433, jeśli zamierzasz połączyć się z programem SQL Server za pośrednictwem sieci.

Użyj sajako loginu i hasła określonego podczas instalacji programu SQL Server za pomocą sudo /opt/mssql/bin/mssql-conf setuppolecenia.

Pozostawiłbym pustą domenę i ścieżkę gniazda UNIX.

Po nawiązaniu połączenia z instancją możesz skonfigurować konto inne niż sa. Zrób to z CREATE LOGINoświadczeniem .

Tylko do twojej wiadomości, możesz użyć SQL Server Management Studio, aby połączyć się z SQL Server w Linuksie, jeśli tego chcesz.

Max Vernon
źródło
W odniesieniu do twojej informacji, w jaki sposób mogę uzyskać interfejs GUI SSMS w systemie Linux? Zainstalowałem oba - mssql-serveri mssql-toolsżadne z nich nie wydaje się mieć żadnej aplikacji GUI ani niczego zainstalowanego w odniesieniu do SSMS. Ponieważ jestem najbardziej zaznajomiony z SSMS, wolałbym nadal go używać, ale nie sądziłem, że jest dostępny w systemie Linux.
KOB
och, nie, miałem na myśli, że możesz uruchomić SSMS na stacji roboczej z systemem Windows i połączyć go z SQL Server w systemie Linux.
Max Vernon
No dobrze, tak myślałem. Nie, tylko eksperymentuję i chciałbym, aby wszystko działało z mojego komputera z systemem Linux.
KOB
Ostatnia uwaga: jeśli chciałbym teraz uzyskać dostęp do mojej bazy danych ze skryptu Python, czy musiałbym tylko skonfigurować moje konto inne niż sa, jak wspomniałeś, a następnie zainstalować jakiś sterownik? Podczas pracy w systemie Windows korzystałem ze sterownika ODBC. W moim skrypcie Pyton w systemie Windows nazwa serwera dla silnika połączenia pochodzi z SSMS, który miał postać CPX-9GL9XXXXXXX\SQLEXPRESS. Jak znaleźć tę równoważną nazwę serwera bez dostępu do SSMS?
KOB
Przeglądarka SQL Server służy do lokalizowania instancji SQL Server bez uprzedniej znajomości numeru portu ... więc dla CPX-9GL9XXXXXXX\SQLEXPRESS-> SQLEXPRESSto nazwa instancji , która zostanie przetłumaczona przez usługę SQL Server Browser na numer portu. Niestety, przeglądarka SQL Server nie jest jeszcze obsługiwana w systemie Linux , więc musisz znać numer portu, którym jest domyślnie 1433.
Max Vernon