GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So stellen Sie von Linux aus eine Verbindung zu SQL Server her

In einer perfekten Welt der Datenbankadministratoren wäre alles gleich. Alle Server wären identisch und würden die gleichen Workloads ausführen. Sie sind einfacher zu verwalten. Aber das ist nicht der Fall. Heutzutage müssen Systemadministratoren verschiedene Umgebungen verwalten. Dies könnte nicht offensichtlicher sein, wenn SQL-Abfragen von einem Linux-Computer ausgeführt werden müssen. In diesem Beitrag erfahren Sie, wie Sie von Linux aus eine Verbindung zu SQL Server herstellen!

Kein Leser? Sehen Sie sich dieses zugehörige Video-Tutorial an! Sie sehen das Video nicht? Stellen Sie sicher, dass Ihr Werbeblocker deaktiviert ist.

Eine Möglichkeit, von Linux aus eine Verbindung zu SQL Server herzustellen, ist die Verwendung eines Python-Moduls. Aber bevor Sie so weit kommen, wollen wir uns zuerst mit der Umgebung befassen, mit der ich arbeite.

In diesem Artikel demonstriere ich diese Aufgabe mit Ubuntu 16.04 und stelle eine Verbindung zu SQL Server 2012 R2 her. Die gleiche Technik sollte jedoch auch für andere Linux-Varianten und SQL Server-Versionen gelten. Datenbankadministratoren freuen sich!

Voraussetzungen

Um zu beginnen, müssen Sie einige Voraussetzungen installieren. Da Sie von Python aus eine Verbindung zu einer SQL Server-Instanz herstellen, benötigen Sie zunächst ein Python-Modul. Ein gängiges Python-Modul zur Verbindung mit SQL heißt PyODBC. Mit diesem Modul können Sie SQL-Datenbanken über ODBC über einen SQL Server ODBC-Treiber für Linux abfragen. Verwenden Sie pip, um die neueste Version zu installieren (der Python-Paketmanager).

> sudo pip install pyodbc

Wenn dies nicht funktioniert, ist Pip möglicherweise nicht installiert. Pip installieren:

> sudo easy_install pip

Als nächstes müssen Sie ein Python-Skript erstellen. Ich werde diese hier sql_server.py nennen . Um ein Python-Skript zu erstellen, erstellen Sie zunächst eine leere Datei.

> touch sql_server.py

Fügen Sie dann mit dem Editor Ihrer Wahl die folgenden Zeilen hinzu. Der Shebang, gefolgt vom Pfad zur Python-Binärdatei, sagt dem Interpreter, dass es sich um ein Python-Skript handelt. Der import -Anweisung können Sie dann die Bibliotheksmethoden innerhalb des Pyodbc-Moduls aufrufen. Speichern Sie dieses Skript.

!/usr/bin/python
import pyodbc

Nachdem Sie das Python-Skript erstellt haben, führen Sie das Skript aus:

> python sql_server.py

Wenn dies ohne Fehler läuft, wurde das pyodbc-Modul erfolgreich installiert.

Fügen Sie als Nächstes den Code zum Ausführen einer Testabfrage hinzu. Erstellen Sie dazu einen ODBC-String.

Um mehr über das Erstellen von ODBC-Strings zu erfahren, finden Sie hier eine gute Ressource.

Die ODBC-Zeichenfolge ist wählerisch, was enthalten ist. Es hat einige Zeit gedauert, um herauszufinden, wie das funktioniert, aber so sieht meins aus. Unten übergebe ich den ODBC-String als Argument an connect() Methode, die in pyodbc enthalten ist Modul.

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;')

Der größte Teil des ODBC-Strings ist offensichtlich, aber eine wichtige Tatsache ist der doppelte umgekehrte Schrägstrich für die UID . Stellen Sie immer sicher, dass Sie alle Backslashes in der ODBC-Zeichenfolge maskiert haben. Außerdem sind einige der von mir verwendeten Optionen optional.

Außerdem können Sie entweder den Hostnamen für SERVER verwenden wie ich es oben getan habe, oder Sie können die SQL Server-IP-Adresse verwenden.

Fühlen Sie sich frei, sie hinzuzufügen oder zu entfernen, wie Sie es für passend halten, damit sie zu Ihrem SQL Server passen.

Als Nächstes müssen Sie ein Cursorobjekt erstellen, an das Sie eine T-SQL-Anweisung übergeben können. Dies geschieht mit dem cursor() Methode.

cursor = conn.cursor()

Jetzt haben Sie ein Objekt mit einem execute() Methode, die verwendet werden kann, um jede gewünschte T-SQL-Anweisung zu übergeben, wie unten gezeigt. Dadurch wird ein rows erstellt Variable, die den resultierenden Datensatz enthält.

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

Sie sind jetzt an dem Punkt angelangt, an dem Sie entscheiden müssen, was mit dem Datensatz geschehen soll. Sie können die Ergebnisse an eine CSV-Datei senden, die Ergebnisse in eine andere Datenbank stellen oder den Inhalt in die Konsole schreiben.

Unten drucke ich die Ergebnisse an die Konsole, wenn das Dataset ausgefüllt ist.

if rows:
    print(rows)

Sie können sehen, dass die Ausgabe nicht allzu schön ist, wenn der Datensatz auf der Konsole ausgedruckt wird. An diesem Punkt liegt es an Ihnen, zu entscheiden, wie Sie die Daten aus der Datenbank formatieren oder parsen. Der schwierige Teil ist vorbei!

Sie erhalten nun ein Skript, das so aussieht:

!/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)

Zusammenfassung

In diesem Blogpost haben Sie gelernt, wie man pyodbc verwendet Python-Modul unter Linux zum Herstellen einer Verbindung mit einer SQL Server-Datenquelle. Der schwierigste Teil für mich war, den ODBC-String herauszufinden, aber sobald Sie das erledigt haben, sollten Sie reibungslos segeln.

Wenn Sie sich von Linux aus verbinden, warum nicht prüfen, ob Sie die Leistung mithilfe von Leistungszählern steigern können?


Linux
  1. Wie man SSH unter Linux von Android aus macht

  2. So laden Sie Dateien vom SFTP-Server mit Python-Skript herunter

  3. So installieren Sie Python unter Linux Mint 20

  4. Verbinden Sie sich von Mac OS X über Terminal mit Linux

  5. Verbinden Sie sich von Windows aus mit PuTTY mit Linux

So stellen Sie von Linux aus eine Verbindung zu einem Remote-Desktop her

So installieren Sie SQL Server unter Linux

So installieren Sie SQL Server unter Windows 10

Wie Sie von Windows aus SSH in Ihren Linux-Server einbinden

So verbinden Sie sich vom Terminal in Ubuntu Linux mit WLAN

So stellen Sie von Linux aus eine Verbindung zu einem Juniper-VPN her