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é.
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
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
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.
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/
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.
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.
Ensuite, je saute sur ma machine Linux et ouvre DataGrip. Pour Host
name__, 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
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!