53 votes

Quels sont les moyens d'accéder à Microsoft SQL Server depuis Linux ?

Nous disposons d'une machine Windows exécutant SQL Server 2005, et nous devons être en mesure d'exécuter des requêtes de base de données à partir d'une machine Linux. Quels sont les moyens recommandés pour y parvenir ? Idéalement, nous voudrions un utilitaire de ligne de commande similaire à sqlcmd sous Windows.

33voto

Vinko Vrsalovic Points 116138

FreeTDS + unixODBC ou iODBC

Installez d'abord FreeTDS, puis configurez l'un des deux moteurs ODBC pour utiliser FreeTDS comme pilote ODBC. Utilisez ensuite l'interface en ligne de commande du moteur ODBC.

unixODBC a isql, iODBC a iodbctest

Vous pouvez également utiliser votre langage de programmation préféré (j'ai utilisé avec succès Perl, C, Python et Ruby pour me connecter à MSSQL).

J'utilise personnellement FreeTDS + iODBC :

$more /etc/freetds/freetds.conf
[10.0.1.251]
    host = 10.0.1.251
    port = 1433
    tds version = 8.0

$ more /etc/odbc.ini
[ACCT]
Driver = /usr/local/freetds/lib/libtdsodbc.so
Description = ODBC to SQLServer via FreeTDS
Trace = No
Servername = 10.0.1.251
Database = accounts_ver8

1 votes

Dans Ubuntu, j'utilise le chemin du pilote /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so . J'obtiens [ISQL]ERROR : Could not SQLConnect.

0 votes

ODBC est le pilote qui permet à Linux de parler avec MSSQL, et FreeTDS interprète le protocole, n'est-ce pas ?

0 votes

Microsoft a publié hier un serveur SQL public pour Linux avec un support pour Docker, Ubuntu, etc. microsoft.com/fr/sql-server/sql-server-vnext-including-Linux

10voto

Matt Rogish Points 11824

sqsh + freetds .

sqsh était principalement un remplacement isql pour Sybase SQL Server (maintenant ASE) mais il fonctionne très bien pour se connecter à SQL Server (à condition d'utiliser freetds).

Pour compiler, il suffit de faire pointer $SYBASE vers freetds install et cela devrait fonctionner à partir de là. Je l'utilise sur mon Mac toute la journée.

La meilleure partie de sqsh est constituée par les fonctionnalités avancées, telles que la liaison de serveurs très simple (pas besoin de configurer des serveurs liés dans SQL Server), le contrôle de flux et le bouclage (plus de concaténation de chaînes et d'exécution de SQL dynamique), et la copie/le chargement en masse invisible.

Toute personne qui utilise un autre outil en ligne de commande est tout simplement folle :)

0 votes

J'ai un problème pour installer sqsh : stackoverflow.com/questions/18784242/

0 votes

sqsh.org n'est plus un bon lien (actuellement l'immobilier japonais ?). On peut le trouver sur SourceForge , bien qu'il n'y ait pas eu de mise à jour depuis 2014.

0 votes

Je suis tout à fait d'accord - c'est l'un des logiciels les plus sous-estimés qui existent. Mais avec aucune mise à jour depuis 2014, les choses semblent un peu inquiétantes.

6voto

Constantin Points 12185

pymssql est un module Python DB-API, basé sur FreeTDS. Il a fonctionné pour moi. Créez quelques fonctions d'aide, si vous en avez besoin, et utilisez-le depuis le shell Python.

0 votes

pymssql ne semble pas être aussi bien entretenue que la pyodbc . En effet, il semble que le pymssql Les développeurs ont abandonné à cause de pyodbc .

5voto

norheim.se Points 1923

Mono contient un fournisseur ADO.NET qui devrait faire cela pour vous. Je ne sais pas s'il existe un utilitaire de ligne de commande pour cela, mais vous pouvez certainement développer un peu de C# pour effectuer les requêtes si ce n'est pas le cas.

Jetez un coup d'œil à http://www.mono-project.com/TDS_Providers et http://www.mono-project.com/SQLClient

3voto

borjab Points 1839

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X