GNU/Linux >> Tutoriels Linux >  >> Linux

Comment se connecter à SQL Server à partir de Linux

Dans un monde parfait d'administrateur de bases de données, tout serait pareil. Tous les serveurs seraient identiques et exécuteraient les mêmes charges de travail. Ils sont plus faciles à gérer. Mais ce n'est pas le cas. De nos jours, les administrateurs système doivent gérer différents environnements. Cela ne pourrait pas être plus évident dans le besoin d'effectuer des requêtes SQL à partir d'une machine Linux. Dans cet article, vous apprendrez à vous connecter à SQL Server à partir de Linux !

Pas un lecteur? Regardez ce didacticiel vidéo associé ! Vous ne voyez pas la vidéo ? Assurez-vous que votre bloqueur de publicités est désactivé.

Une façon de se connecter à SQL Server à partir de Linux consiste à utiliser un module Python. Mais avant d'aller aussi loin, voyons d'abord dans quel environnement je travaille.

Dans cet article, je vais démontrer cette tâche en utilisant Ubuntu 16.04 et je vais me connecter à SQL Server 2012 R2. Mais la même technique devrait également s'appliquer aux autres versions de Linux et aux versions de SQL Server. Administrateurs de bases de données, réjouissez-vous !

Prérequis

Pour commencer, vous devrez installer quelques prérequis. Tout d'abord, puisque vous vous connecterez à une instance SQL Server à partir de Python, vous aurez besoin d'un module Python. Un module Python courant pour se connecter à SQL s'appelle PyODBC. Ce module permet d'interroger des bases de données SQL via ODBC via un pilote ODBC SQL Server pour Linux. Pour installer la dernière version, utilisez pip (le gestionnaire de packages Python).

> sudo pip install pyodbc

Si cela ne fonctionne pas, vous n'avez peut-être pas installé pip. Pour installer pip :

> sudo easy_install pip

Ensuite, vous devez créer un script Python. Je vais appeler celui-ci sql_server.py . Pour créer un script Python, créez d'abord un fichier vide.

> touch sql_server.py

Ensuite, en utilisant l'éditeur de votre choix, ajoutez les lignes ci-dessous. Le shebang suivi du chemin vers le binaire Python indique à l'interpréteur qu'il s'agit d'un script Python. Le import L'instruction vous permet ensuite d'appeler les méthodes de la bibliothèque à l'intérieur du module pyodbc. Enregistrez ce script.

!/usr/bin/python
import pyodbc

Une fois que vous avez créé le script Python, exécutez-le :

> python sql_server.py

Si cela s'exécute sans erreur, le module pyodbc a été installé avec succès.

Ensuite, ajoutez le code pour exécuter une requête test. Pour ce faire, créez une chaîne ODBC.

Pour en savoir plus sur la création de chaînes ODBC, voici une bonne ressource.

La chaîne ODBC est pointilleuse sur ce qui est inclus. Il a fallu un certain temps pour comprendre comment faire fonctionner cela, mais voici à quoi ressemble le mien. Ci-dessous, je passe la chaîne ODBC comme argument au connect() méthode qui est incluse avec le pyodbc module.

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 plupart de la chaîne ODBC est évidente, mais un fait important est la double barre oblique inverse pour l'UID . Assurez-vous toujours que vous avez échappé les barres obliques inverses dans la chaîne ODBC. De plus, certaines des options que j'utilise sont facultatives.

En outre, vous pouvez soit utiliser le nom d'hôte pour SERVER comme je l'ai fait ci-dessus ou vous pouvez utiliser l'adresse IP de SQL Server.

N'hésitez pas à les ajouter ou à les supprimer comme bon vous semble pour correspondre à votre serveur SQL.

Ensuite, vous devez créer un objet curseur qui vous permettra de transmettre une instruction T-SQL à. Cela se fait avec le cursor() méthode.

cursor = conn.cursor()

Vous avez maintenant un objet avec un execute() méthode qui peut être utilisée pour transmettre n'importe quelle instruction T-SQL dans laquelle nous aimerions, comme indiqué ci-dessous. Cela crée un rows variable contenant le jeu de données résultant.

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

Vous êtes maintenant au point où vous devrez décider quoi faire avec l'ensemble de données. Vous pouvez envoyer les résultats dans un fichier CSV, placer les résultats dans une autre base de données ou écrire le contenu sur la console.

Ci-dessous, j'imprime les résultats sur la console si l'ensemble de données est rempli.

if rows:
    print(rows)

Vous pouvez voir que si l'ensemble de données est imprimé sur la console, la sortie n'est pas trop jolie. À ce stade, c'est à vous de décider comment formater ou analyser les données de la base de données. Le plus dur est passé !

Vous allez maintenant vous retrouver avec un script qui ressemble à ceci :

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

Résumé

Dans cet article de blog, vous avez appris à utiliser le pyodbc Module Python sous Linux pour se connecter à une source de données SQL Server. La partie la plus difficile pour moi a été de comprendre la chaîne ODBC, mais une fois que vous avez compris cela, vous devriez naviguer en douceur.

Une fois que vous vous connectez depuis Linux, pourquoi ne pas voir si vous pouvez augmenter les performances à l'aide de compteurs de performances ?


Linux
  1. Comment SSH sur Linux à partir d'Android

  2. Comment télécharger des fichiers à partir du serveur SFTP à l'aide d'un script python

  3. Comment installer Python sur Linux Mint 20

  4. Comment utiliser OpenSSH pour se connecter à votre serveur Linux

  5. Connectez-vous à Linux à partir de Mac OS X en utilisant Terminal

Comment se connecter à un poste de travail distant à partir de Linux

Comment installer SQL Server sur Linux

Comment installer SQL Server sur Windows 10

Comment se connecter en SSH à votre serveur Linux à partir de Windows

Comment se connecter au WiFi depuis le terminal dans Ubuntu Linux

Comment SCP du serveur Linux au client Windows