SQL Server : accès à partir de linux : Différence entre versions
De wikiGite
(Page créée avec « = FreeTDS = FreeTDS fourni le protocole TDS (Tabular Data Stream) utilisé par SQLServer et Sybase. Il fourni également des outils en ligne de commande, ainsi qu'un driver O... ») |
(→Installation) |
||
(11 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
= FreeTDS = | = FreeTDS = | ||
− | FreeTDS fourni le protocole TDS (Tabular Data Stream) utilisé par SQLServer et Sybase. Il fourni également des outils en ligne de commande, ainsi qu'un driver ODBC mais ce dernier est limité. On lui préfèrera donc ceux d'UnixODBC. | + | == Installation == |
+ | ''FreeTDS'' fourni le protocole TDS (Tabular Data Stream) utilisé par SQLServer et Sybase. Il fourni également des outils en ligne de commande, ainsi qu'un driver ODBC mais ce dernier est limité. On lui préfèrera donc ceux d'UnixODBC. | ||
− | tdsodbc fourni /usr/lib/odbc/libtdsodbc.so et /usr/share/tdsodbc/odbcinst.ini | + | ''tdsodbc'' fourni /usr/lib/odbc/libtdsodbc.so et /usr/share/tdsodbc/odbcinst.ini |
sudo apt-get install freetds-bin tdsodbc | sudo apt-get install freetds-bin tdsodbc | ||
− | Dépendances : freetds-common, libsybdb5 | + | Dépendances : freetds-common, libsybdb5. |
− | + | Dans /etc/freetds/freetds.conf ajouter | |
− | [SERVSQL] | + | [SERVSQL] |
− | + | host = serveursql.domain #(ou adresse IP) | |
− | + | port = 1433 | |
− | + | tds version = 8.0 | |
− | + | Tester : | |
tsql -S SERVSQL -U sa -P sa | tsql -S SERVSQL -U sa -P sa | ||
− | -U : utilisateur SQL Server | + | -U : utilisateur SQL Server<br/> |
-P : mot de passe | -P : mot de passe | ||
− | cette commande doit renvoyer : | + | cette commande doit renvoyer (sans erreur) : |
locale is "fr_FR.UTF-8" | locale is "fr_FR.UTF-8" | ||
locale charset is "UTF-8" | locale charset is "UTF-8" | ||
1> | 1> | ||
On peut ensuite tester : | On peut ensuite tester : | ||
− | 1> use | + | 1> use db1 |
2> go | 2> go | ||
1> select * from sysusers; | 1> select * from sysusers; | ||
2> go | 2> go | ||
Noter les "GO" pour lancer les commandes. Taper "quit" pour quitter. | Noter les "GO" pour lancer les commandes. Taper "quit" pour quitter. | ||
+ | |||
+ | == Configuration == | ||
+ | A la fin de /etc/freedts/freetds.conf, ajouter | ||
+ | [SERVSQL] | ||
+ | host = servsql.regie.fr | ||
+ | port = 1433 | ||
+ | tds version = 8.0 | ||
+ | qui définit l'accès au serveur SQL Server, le port et la version | ||
= ODBC = | = ODBC = | ||
== Installation == | == Installation == | ||
sudo apt-get install unixodbc | sudo apt-get install unixodbc | ||
− | fourni | + | fourni les drivers ODBC et l'outils d'interrogation isql |
Voir la configuration d'ODBC, notamment où il cherche ses fichiers : | Voir la configuration d'ODBC, notamment où il cherche ses fichiers : | ||
Ligne 48 : | Ligne 57 : | ||
== Configuration == | == Configuration == | ||
− | + | Copier /usr/share/tdsodbc/odbcinst.ini vers /etc/odbcinst.ini (celui-ci déclare un driver "FreeTDS" qui pointe vers les librairies .so) | |
+ | [FreeTDS] | ||
+ | Description = TDS driver (Sybase/MS SQL) | ||
+ | Driver = /usr/lib/odbc/libtdsodbc.so | ||
+ | Setup = /usr/lib/odbc/libtdsS.so | ||
+ | Trace = No | ||
+ | FileUsage = 1 | ||
+ | CPTimeout = | ||
+ | CPReuse = | ||
− | + | Créer ~/.odbc.ini (équivalent du "User DSN". Si on veut un "System DSN", créer /etc/odbc.ini (sans le ".") -> voir "odbcinst -j") | |
[SERVSQL-DB1] | [SERVSQL-DB1] | ||
Driver = FreeTDS | Driver = FreeTDS | ||
Ligne 62 : | Ligne 79 : | ||
Tester : | Tester : | ||
− | isql -v SERVSQL-DB1 sa sa | + | # isql -v SERVSQL-DB1 sa sa |
+ | +---------------------------------------+ | ||
+ | | Connected! | | ||
+ | | | | ||
+ | | sql-statement | | ||
+ | | help [tablename] | | ||
+ | | quit | | ||
+ | | | | ||
+ | +---------------------------------------+ | ||
+ | SQL> select size,filename from sysfiles; | ||
+ | SQL> | ||
Pour passer un script : | Pour passer un script : | ||
Ligne 70 : | Ligne 97 : | ||
Si tout fonctionne, on peut enlever les traces (Trace = no) dans les fichiers de config, et enlever le "-v" pour isql. | Si tout fonctionne, on peut enlever les traces (Trace = no) dans les fichiers de config, et enlever le "-v" pour isql. | ||
− | |||
− | |||
− |
Version actuelle datée du 11 janvier 2012 à 09:22
FreeTDS
Installation
FreeTDS fourni le protocole TDS (Tabular Data Stream) utilisé par SQLServer et Sybase. Il fourni également des outils en ligne de commande, ainsi qu'un driver ODBC mais ce dernier est limité. On lui préfèrera donc ceux d'UnixODBC.
tdsodbc fourni /usr/lib/odbc/libtdsodbc.so et /usr/share/tdsodbc/odbcinst.ini
sudo apt-get install freetds-bin tdsodbc
Dépendances : freetds-common, libsybdb5.
Dans /etc/freetds/freetds.conf ajouter
[SERVSQL] host = serveursql.domain #(ou adresse IP) port = 1433 tds version = 8.0
Tester :
tsql -S SERVSQL -U sa -P sa
-U : utilisateur SQL Server
-P : mot de passe
cette commande doit renvoyer (sans erreur) :
locale is "fr_FR.UTF-8" locale charset is "UTF-8" 1>
On peut ensuite tester :
1> use db1 2> go 1> select * from sysusers; 2> go
Noter les "GO" pour lancer les commandes. Taper "quit" pour quitter.
Configuration
A la fin de /etc/freedts/freetds.conf, ajouter
[SERVSQL] host = servsql.regie.fr port = 1433 tds version = 8.0
qui définit l'accès au serveur SQL Server, le port et la version
ODBC
Installation
sudo apt-get install unixodbc
fourni les drivers ODBC et l'outils d'interrogation isql
Voir la configuration d'ODBC, notamment où il cherche ses fichiers :
#odbcinst -j unixODBC 2.2.14 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /home/user1/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8
On utilisera donc /home/user1/.odbc.ini pour les "User DSN"
Configuration
Copier /usr/share/tdsodbc/odbcinst.ini vers /etc/odbcinst.ini (celui-ci déclare un driver "FreeTDS" qui pointe vers les librairies .so)
[FreeTDS] Description = TDS driver (Sybase/MS SQL) Driver = /usr/lib/odbc/libtdsodbc.so Setup = /usr/lib/odbc/libtdsS.so Trace = No FileUsage = 1 CPTimeout = CPReuse =
Créer ~/.odbc.ini (équivalent du "User DSN". Si on veut un "System DSN", créer /etc/odbc.ini (sans le ".") -> voir "odbcinst -j")
[SERVSQL-DB1] Driver = FreeTDS Description = ODBC connection via FreeTDS Trace = Yes TraceFile = /tmp/odbc.ini.log Server = 192.168.84.59 Port = 1433 Database = DB1
ATTENTION !!!!! : pas d'espaces devant les paramètres ! Sinon le test répondra "DSN not found".
Tester :
# isql -v SERVSQL-DB1 sa sa +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> select size,filename from sysfiles; SQL>
Pour passer un script :
cat testmssql.sql | isql -v SERVSQL-DB1 sa sa
OU
isql -v SERVSQL-DB1 sa sa < testmssql.sql
Si tout fonctionne, on peut enlever les traces (Trace = no) dans les fichiers de config, et enlever le "-v" pour isql.