GNU/Linux >> Linux Esercitazione >  >> Linux

Come connettersi a SQL Server da Linux

In un mondo perfetto di amministratore di database, tutto sarebbe lo stesso. Tutti i server sarebbero identici ed eseguirebbero gli stessi carichi di lavoro. Sono più facili da gestire. Ma non è così. Al giorno d'oggi, gli amministratori di sistema devono gestire ambienti diversi. Questo non potrebbe essere più evidente nella necessità di eseguire query SQL da una macchina Linux. In questo post imparerai come connetterti a SQL Server da Linux!

Non sei un lettore? Guarda questo video tutorial correlato! Non vedi il video? Assicurati che il blocco degli annunci sia disattivato.

Un modo per connettersi a SQL Server da Linux consiste nell'usare un modulo Python. Ma prima di arrivare così lontano, esaminiamo prima l'ambiente con cui sto lavorando.

In questo articolo, dimostrerò questa attività utilizzando Ubuntu 16.04 e mi collegherò a SQL Server 2012 R2. Ma la stessa tecnica dovrebbe applicarsi anche ad altre versioni di Linux e alle versioni di SQL Server. Gli amministratori di database si rallegrano!

Prerequisiti

Per iniziare, dovrai installare alcuni prerequisiti. Innanzitutto, poiché ti connetterai a un'istanza di SQL Server da Python, avrai bisogno di un modulo Python. Un modulo Python comune per connettersi a SQL è chiamato PyODBC. Questo modulo consente di interrogare i database SQL tramite ODBC tramite un driver ODBC di SQL Server per Linux. Per ottenere l'ultima versione installata, usa pip (il gestore di pacchetti Python).

> sudo pip install pyodbc

Se questo non funziona, potresti non aver installato pip. Per installare pip:

> sudo easy_install pip

Successivamente, devi creare uno script Python. Lo chiamerò sql_server.py . Per creare uno script Python, crea prima un file vuoto.

> touch sql_server.py

Quindi, utilizzando il tuo editor di scelta, aggiungi le righe seguenti. Lo shebang seguito dal percorso del binario Python dice all'interprete che si tratta di uno script Python. Il import l'istruzione consente quindi di chiamare i metodi della libreria all'interno del modulo pyodbc. Salva questo script.

!/usr/bin/python
import pyodbc

Una volta creato lo script Python, esegui lo script:

> python sql_server.py

Se viene eseguito senza errori, il modulo pyodbc è stato installato correttamente.

Quindi, aggiungi il codice per eseguire una query di test. Per fare ciò, crea una stringa ODBC.

Per ulteriori informazioni sulla creazione di stringhe ODBC, ecco una buona risorsa.

La stringa ODBC è esigente su ciò che è incluso. Ci è voluto del tempo per capire come farlo funzionare, ma ecco come appare il mio. Di seguito passo la stringa ODBC come argomento al connect() metodo incluso con pyodbc modulo.

conn = pyodbc.connect('DRIVER={FreeTDS};SERVER=server.domain.local;PORT=1433;UID=DOMAIN\user;PWD=mypassword;DATABASE=mydatabasename;UseNTLMv2=yes;TDS_Version=8.0;Trusted_Domain=domain.local;')

La maggior parte della stringa ODBC è evidente, ma un fatto importante è la doppia barra rovesciata per l'UID . Assicurati sempre di aver evitato le barre inverse nella stringa ODBC. Inoltre, alcune delle opzioni che sto utilizzando sono opzionali.

Inoltre, puoi utilizzare il nome host per SERVER come ho fatto sopra oppure puoi utilizzare l'indirizzo IP di SQL Server.

Sentiti libero di aggiungerli o rimuoverli come meglio credi in modo che corrispondano al tuo SQL Server.

Successivamente, è necessario creare un oggetto cursore che consenta di passare un'istruzione T-SQL a. Questo viene fatto con il cursor() metodo.

cursor = conn.cursor()

Ora hai un oggetto con un execute() metodo che può essere utilizzato per passare qualsiasi istruzione T-SQL in cui vorremmo, come mostrato di seguito. Questo crea un rows variabile contenente il set di dati risultante.

cursor.execute("SELECT * FROM <tablename>")
rows = cursor.fetchall()

Ora sei al punto in cui dovrai decidere cosa fare con il set di dati. Puoi inviare i risultati a un file CSV, inserire i risultati in un altro database o scrivere i contenuti nella console.

Di seguito, sto stampando i risultati sulla console se il set di dati è popolato.

if rows:
    print(rows)

Puoi vedere che se il set di dati viene stampato sulla console, l'output non è troppo bello. A questo punto, sta a te decidere come formattare o analizzare i dati dal database. La parte difficile è finita!

Ora ti ritroverai con uno script simile a questo:

!/usr/bin/python
import pyodbc

conn = pyodbc.connect('DRIVER={FreeTDS};SERVER=server.domain.local;PORT=1433;UID=DOMAIN\user;PWD=mypassword;DATABASE=mydatabasename;UseNTLMv2=yes;TDS_Version=8.0;Trusted_Domain=domain.local;')

cursor.execute("SELECT * FROM <tablename>")
rows = cursor.fetchall()

if rows:
    print(rows)

Riepilogo

In questo post del blog hai imparato a usare pyodbc Modulo Python su Linux per la connessione a un'origine dati di SQL Server. La parte più difficile per me è stata capire la stringa ODBC, ma una volta che l'hai coperta, dovresti navigare senza intoppi.

Dopo esserti connesso da Linux, perché non vedere se riesci ad aumentare le prestazioni utilizzando i contatori delle prestazioni?


Linux
  1. Come installare Python su Linux

  2. Come SSH su Linux da Android

  3. Connettiti a Linux da Mac OS X usando Terminal

  4. Connettiti a Linux da Windows usando PuTTY

  5. Come chiamare Wine dll da Python su Linux?

Come connettersi a un desktop remoto da Linux

Come installare SQL Server su Linux

Come installare SQL Server su Windows 10

Come SSH nel tuo server Linux da Windows

Come connettersi al WiFi dal terminale in Ubuntu Linux

Come connettersi a una VPN Juniper da Linux