Connessione a un MS SQL Server locale da un client GUI


11

Sono molto nuovo di SQL e server di database. Recentemente sto usando SQL Server Express e accedendo al mio database usando SQL Server Management Studio su Windows. Ora sto cercando di ottenere una configurazione simile su una macchina Linux.

Vorrei creare un'istanza locale di SQL Server sulla macchina e quindi utilizzare SQLectron come client GUI per eseguire query sul mio database. Sto usando Manjaro Linux e quindi installo i miei pacchetti da AUR.

Finora ho installato mssql-server, mssql-toolse sqlectron-gui. Ho eseguito il sudo /opt/mssql/bin/mssql-conf setupcomando per (credo) impostare un server locale. Dopo averlo fatto, l'esecuzione del comando systemctl status mssql-serverrestituisce questo:

[kev @ XPS-Manjaro ~] $ systemctl status mssql-server
● mssql-server.service - Motore di database di Microsoft SQL Server
Caricato: caricato (/usr/lib/systemd/system/mssql-server.service; abilitato; preset fornitore: disabilitato)
Attivo: attivo (in esecuzione) da mer 2017-08-23 13:43:49 IST; 2h 42min fa
    Documenti: https://docs.microsoft.com/en-us/sql/linux
PID principale: 9130 (sqlservr)
    Compiti: 165
CGroup: /system.slice/mssql-server.service
        91─9130 / opt / mssql / bin / sqlservr
        9─9144 / opt / mssql / bin / sqlservr

23 ago 13:43:52 XPS-Manjaro sqlservr [9130]: [dati BLB 145B]
23 ago 13:43:52 XPS-Manjaro sqlservr [9130]: [66B blob data]
23 ago 13:43:52 XPS-Manjaro sqlservr [9130]: [96B blob data]
23 ago 13:43:52 XPS-Manjaro sqlservr [9130]: [100B blob data]
23 ago 13:43:52 XPS-Manjaro sqlservr [9130]: [71B blob data]
23 ago 13:43:52 XPS-Manjaro sqlservr [9130]: [124B blob data]
23 ago 13:49:03 XPS-Manjaro sqlservr [9130]: [dati BLB 156B]
23 ago 13:49:03 XPS-Manjaro sqlservr [9130]: [194B blob data]
23 ago 13:52:31 XPS-Manjaro sqlservr [9130]: [74B blob data]
23 ago 13:52:31 XPS-Manjaro sqlservr [9130]: [199B blob data]

Sto ora tentando di creare una connessione locale al mio server tramite SQLectron nella seguente schermata:

inserisci qui la descrizione dell'immagine

Dato che ho pochissima esperienza con i server SQL, sono completamente perso con dove ottenere tutte queste credenziali per connettermi al mio server locale. L'unica che conosco è la password che ho impostato nel sudo /opt/mssql/bin/mssql-conf setupcomando.

Come posso trovare il nome del server, l'indirizzo host (127.0.0.1?), La porta, il dominio, il percorso del socket Unix e il nome utente?


Ho lavorato solo con SQL Server su Windows, ma se alcuni termini fossero di aiuto: Nome sarebbe il nome del server (e dell'istanza, se necessario); da quello che dici, addresscome 127.0.0.1` dovrebbe funzionare; portavrebbe dovuto essere impostato al momento della configurazione del server (il valore predefinito è generalmente 1433); usersarebbe il nome utente a cui si desidera accedere (probabilmente potrebbe essere un account utente Linux o un account SQL Server (come sa), ed passwordè la password per tale account. Databasee Schemasarebbe il database e lo schema predefiniti a cui connettersi; provare mastere vuoto, o mastere dbo.
RDFozz,

Risposte:


7

Se si sta eseguendo la GUI sullo stesso computer del servizio mssql-server, è possibile utilizzare localhost per l'indirizzo (127.0.0.1). Se si esegue la GUI da una workstation diversa, è necessario l'indirizzo IPv4 della macchina su cui è in esecuzione il servizio mssql-server. È possibile ottenerlo eseguendo ifconfigda un prompt del terminale Linux. Esempio di output da ifconfig:

eth0: flags = 4163 mtu 1500
        etere 00: 15: 5d: 89: 45: 01 txqueuelen 1000 (Ethernet)
        Pacchetti RX 423 byte 137827 (134,5 KiB)
        0 errori RX 0 rilasciati 0 sovraccarichi 0 frame 0
        Pacchetti TX 0 byte 0 (0,0 B)
        Errori TX 0 rilasciati 0 sovraccarichi 0 collettori 0 collisioni 0

eth1: flags = 4163 mtu 1500
        inet 192.168.200.11 maschera di rete 255.255.255.0 trasmessa 192.168.200.255
        inet6 fe80 :: 2f70: 9d15: 8e7d: 16cb prefixlen 64 scopeid 0x20
        etere 00: 15: 5d: 89: 45: 04 txqueuelen 1000 (Ethernet)
        Pacchetti RX 20138 byte 2006000 (1,9 MiB)
        0 errori RX 0 rilasciati 0 sovraccarichi 0 frame 0
        Pacchetti TX 19756 byte 30125657 (28,7 MiB)
        Errori TX 0 rilasciati 0 sovraccarichi 0 collettori 0 collisioni 0

lo: flags = 73 mtu 65536
        inet 127.0.0.1 netmask 255.0.0.0
        inet6 :: 1 prefixlen 128 scopeid 0x10
        loop txqueuelen 1 (Local Loopback)
        Pacchetti RX 3239 byte 361340 (352,8 KiB)
        0 errori RX 0 rilasciati 0 sovraccarichi 0 frame 0
        Pacchetti TX 3239 byte 361340 (352,8 KiB)
        Errori TX 0 rilasciati 0 sovraccarichi 0 collettori 0 collisioni 0

Nell'output sopra, il bit che è importante è l'indirizzo "inet", che nel mio caso è 192.168.200.11.

La porta predefinita per SQL Server è 1433 - a meno che non sia stata scelta una porta diversa in mssql-conf utilizzare quel numero di porta. Assicurarsi che il firewall sulla scatola Linux consenta connessioni esterne tramite 1433, se si intende connettersi a SQL Server tramite la rete.

Utilizzare sacome login e la password specificata durante l'installazione di SQL Server tramite il sudo /opt/mssql/bin/mssql-conf setupcomando.

Lascerei vuoto il dominio e il percorso del socket unix.

Dopo esserti connesso all'istanza, potresti voler configurare un account non sa. Fallo con l' CREATE LOGINaffermazione .

Solo un FYI, puoi usare SQL Server Management Studio per connetterti a SQL Server su Linux, se lo desideri.


Per quanto riguarda la tua FYI, come posso ottenere la GUI di SSMS su Linux? Ho installato entrambi mssql-servere mssql-tools- nessuno dei quali sembra che abbia alcun tipo di applicazione GUI o qualsiasi cosa installata per quanto riguarda SSMS. Dal momento che conosco meglio SSMS, preferirei continuare a usarlo, ma non pensavo fosse disponibile su Linux.
KOB,

oh, no, intendevo dire che potevi eseguire SSMS su una workstation Windows e collegarlo a SQL Server su Linux.
Max Vernon,

Oh ok, l'ho pensato. No, sto solo sperimentando e vorrei solo avere tutto in esecuzione dalla mia macchina Linux.
KOB,

Un ultimo seguito: se ora volessi accedere al mio database da uno script Python, avrei solo bisogno di configurare il mio account non sa come hai menzionato e quindi installare un driver? Ho usato il driver ODBC quando lavoravo su Windows. Nel mio script Pyton su Windows, ho ottenuto il nome del mio server per il motore di connessione da SSMS che era in forma di CPX-9GL9XXXXXXX\SQLEXPRESS. Come posso trovare questo nome di server equivalente senza avere accesso a SSMS?
KOB,

SQL Server Browser viene utilizzato per individuare le istanze di SQL Server senza conoscere in anticipo il numero di porta ... quindi per CPX-9GL9XXXXXXX\SQLEXPRESS-> SQLEXPRESSè il nome dell'istanza , che verrebbe tradotto dal servizio Browser di SQL Server in un numero di porta. Sfortunatamente, SQL Server Browser non è ancora supportato su Linux , quindi è necessario conoscere il numero di porta, che è 1433 per impostazione predefinita.
Max Vernon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.