web-dev-qa-db-fra.com

Connexion MSSQL d'Ubuntu

J'ai besoin d'un tutoriel simple et complet pour établir une connexion MSSQL à partir d'Ubuntu.

Je pense avoir installé FreeTDS et UnixODBC, mais les configurations sont très compliquées. Je ne comprenais pas le problème.

J'ai suivi ce tutoriel: https://github.com/Rails-sqlserver/activerecord-sqlserver-adapter/wiki/Platform-Installation---Ubunt

Mais j'ai échoué.

root@hackmachine:~# isql -v example.com XXXXX XXXXXXX
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
root@hackmachine:~# 

Modifier:

Avant cette édition, "/etc/odbcinst.ini" et "/etc/odbc.ini" étaient vides.

J'ai ajouté ces lignes à /etc/odbcinst.ini:

[FreeTDS]

Description     = TDS driver (Sybase/MS SQL)

Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

CPTimeout       =

CPReuse         =

FileUsage       = 1

J'ai ajouté ces lignes à /etc/odbc.ini:

[project_development]
Driver = FreeTDS
Description     = ODBC connection via FreeTDS
Trace           = No
Servername      = developer
Database        = project_development

[project_test]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = developer
Database = test

[project_production]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = production
Database = project_production

Je n'ai apporté aucune modification sur "/etc/freetds/freetds.conf" depuis le tout début.

Pourtant, rien n'a changé.

10
mertyildiran

Voici les instructions étape par étape (trouvé ici) :

Tout d'abord, installez unixODBC:

Sudo apt-get install unixodbc unixodbc-dev

J'ai également installé les paquets suivants (peut-être nécessaires):

Sudo apt-get install tdsodbc php5-odbc

Ensuite, téléchargez, décompressez, compilez et installez FreeTDS (avertissement, l’URL peut changer):

cd /usr/local

wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
tar xvfz freetds-stable.tgz
cd freetds-0.82
./configure --enable-msdblib --with-tdsver=8.0 --with-unixodbc=/usr
make
make install
make clean

Essayez une connexion via Telnet à votre instance SQL Server:

telnet 192.168.0.1 1433

Utilisez l'outil tsql pour tester la connexion:

tsql -S 192.168.0.1 -U devuser

Cela devrait vous inciter à entrer le mot de passe, après quoi vous pouvez espérer voir ce beau signe:

1>

Si cela a fonctionné, je recommande d'organiser une fête (de codage). La prochaine étape est une configuration. Ouvrez le fichier de configuration FreeTDS. /usr/local/etc/freetds.conf

Ajoutez l'entrée suivante au bas du fichier. Nous configurons un nom de source de données (DSN) appelé "MSSQL".

[MSSQL]
Host = 192.168.0.1
port = 1433
tds version = 8.0

Ouvrez maintenant le fichier de configuration ODBC: /usr/local/etc/odbcinst.ini

Et ajoutez l’entrée de pilote MSSQL suivante (FreeTDS) à la fin:

[FreeTDS]
Description = FreeTDS driver
Driver = /usr/local/lib/libtdsodbc.so
Setup=/usr/lib/odbc/libtdsS.so
FileUsage = 1
UsageCount = 1

Enfin, définissez le DSN dans ODBC du fichier odbc.ini ici /usr/local/etc/odbc.ini En ajoutant ce bit au fichier:

[MSSQL]
Description = MS SQL Server
Driver = /usr/local/lib/libtdsodbc.so
Server = 192.168.2.3
UID = devuser
PWD = devpass
ReadOnly = No
Port = 1433

Testez la connexion à l'aide de l'outil isql:

isql -v MSSQL devuser 'devpass'

Si vous voyez "Connecté!", Vous êtes en or, félicitations! Sinon, je suis vraiment désolé; voyez ci-dessous quelques ressources qui pourraient vous aider.

Maintenant, redémarrez Apache et testez-le à partir de PHP en utilisant ‘MSSQL’ comme DSN. Si quelque chose ne fonctionne pas, vous pouvez essayer d’installer tout ou partie de ces packages: mdbtools libmdbodbc libmdbtools mdbtools-gmdb

11
Trevor Clarke

Sur Trusty 14.04, j’ai eu des problèmes pour faire http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz

Lorsque j'ai essayé d'exécuter une commande tsql, j'ai découvert que tsql pouvait être installé via apt:

$ Sudo apt-get install freetds-bin
4
decibel.places

Pour répondre à la question implicite de:

J'ai besoin d'un tutoriel simple et complet pour établir une connexion MSSQL à partir d'Ubuntu

... et en ignorant tous les éléments d'installation de FreeTDS.

Utilisez mssql-cli ( installer , sage ).

0
oeuftete

Je devais le faire pour Ubuntu 14.04 et 17.04, les deux LTS 64 bits. Fonctionne probablement pour les versions ultérieures.

Installez unixodbc (connexions ODBC), freetds (connexions SQL Server) et tdsodbc (pont entre les deux anciens)

Sudo apt install unixodbc freetds-bin tdsodbc

Ajoutez vos pilotes ODBC à /etc/odbcinst.ini (doit être vide)

[SQL Server]
Description = FreeTDS driver
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
FileUsage = 1
UsageCount = 1

Ajoutez vos DSN à /etc/odbc.ini (doit également être vide)

[ACCOUNTING]
Description = Accounting database
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Server = 123.123.123.123
Database = your_database_name
Port = 1433

Et c'était tout.

0
ASalazar

J'espère que vous avez copié le contenu du lien vers le fichier. Vous devez mettre à jour les détails de votre serveur SQL dans le fichier "/etc/odbc.ini". Vous pouvez vous référer au lien http://guywyant.info/log/206/connecting-to-ms-sql-server-from-ubuntu/

0
vembutech

Je travaille dans une entreprise qui utilise beaucoup les produits Microsoft. Cependant, je préfère travailler sur une machine Linux (Ubuntu). Plus précisément, j'utilise Ubuntu 16.04 LTS .

J'utilise les DataGrip ou SQL Electron de JetBrains comme interfaces graphiques SQL. DataGrip nécessitera pilote Microsoft JDBC pour SQL Server auquel vous devez vous référer manuellement lorsque vous ouvrez DataGrip pour la première fois. Je mets ceci dans /usr/share/Java/, mais n'importe où fonctionnera.

La connexion est simple sur mon ordinateur portable Windows 10. J'ouvre simplement SQL Server Management Studio et j'utilise mes informations d'identification pour me connecter (nom d'utilisateur + mot de passe); Je n'utilise pas l'authentification Windows.

Conditions préalables

Pour vous connecter à partir d'Ubuntu, c'est un peu (juste un peu]) travail supplémentaire. Tout d’abord, sur mon ordinateur Windows 10, j’ouvre un terminal Powershell et tape ce qui suit:

nslookup <server name here>

et il retourne quelque chose comme

Non-authoritative answer:
Name: <server name here>
Address: <server's address>

Le nom et l'adresse du serveur seront statiques. Par conséquent, les informations ci-dessus ne seront nécessaires que pour s'exécuter une fois par serveur auquel vous essayez d'accéder.

DataGrip

Ensuite, je saute sur ma machine Linux et ouvre DataGrip. Pour Hostname__, je saisis <server's address>, port: 1433 (valeur par défaut pour MS SQL Server). L'URL devrait ressembler à quelque chose,

URL: jdbc:sqlserver://<server's address>:1433

Si vous cliquez sur Test Connection, il vous demandera des informations de connexion si vous ne l'avez pas encore ajouté. Et c'est tout pour DataGrip!

DataGrip propose également le blog suivant, qui peut être utile aux nouveaux utilisateurs: Connexion de DataGrip à MS SQL Server

SQL Electron

Si vous ne souhaitez pas acheter DataGrip, vous pouvez utiliser SQL Electron. Les étapes sont similaires. Ouvrez SQL Electron, cliquez sur ajouter pour ajouter un nouveau serveur et, pour Server Address, saisissez <server's address>, port: 1433 et, enfin, vos identifiants de connexion. Et c'est tout!

0
Jon